Index: src/heap/code-stats.h |
diff --git a/src/heap/code-stats.h b/src/heap/code-stats.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..499c9fa5ac0ad3c2f50ae76100c2a6e063c9bf72 |
--- /dev/null |
+++ b/src/heap/code-stats.h |
@@ -0,0 +1,42 @@ |
+// Copyright 2016 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "src/assembler.h" |
+#include "src/heap/spaces.h" |
+#include "src/isolate.h" |
+#include "src/objects.h" |
+ |
+namespace v8 { |
+namespace internal { |
+ |
+class CodeStatistics { |
+ public: |
+ // Collect statistics related to code size. |
+ static void CollectCodeStatistics(PagedSpace* space, Isolate* isolate); |
+ |
+ // Collect statistics related to code size from large object space. |
+ static void CollectCodeStatistics(LargeObjectSpace* space, Isolate* isolate); |
+ |
+ // Reset code size related statistics |
+ static void ResetCodeAndMetadataStatistics(Isolate* isolate); |
+ |
+#ifdef DEBUG |
+ // Report statistics about code kind, code+metadata and code comments. |
+ static void ReportCodeStatistics(Isolate* isolate); |
+#endif |
+ |
+ private: |
+ static void RecordCodeAndMetadataStatistics(HeapObject* object, |
+ Isolate* isolate); |
+ |
+#ifdef DEBUG |
+ static void CollectCommentStatistics(Isolate* isolate, RelocIterator* it); |
+ static void CollectCodeCommentStatistics(HeapObject* obj, Isolate* isolate); |
+ static void EnterComment(Isolate* isolate, const char* comment, int delta); |
+ static void ResetCodeStatistics(Isolate* isolate); |
+#endif |
+}; |
+ |
+} // namespace internal |
+} // namespace v8 |