V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
code-stats.h
1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef V8_HEAP_CODE_STATS_H_
6 #define V8_HEAP_CODE_STATS_H_
7 
8 namespace v8 {
9 namespace internal {
10 
11 class Isolate;
12 class HeapObject;
13 class LargeObjectSpace;
14 class PagedSpace;
15 class RelocIterator;
16 
18  public:
19  // Collect statistics related to code size.
20  static void CollectCodeStatistics(PagedSpace* space, Isolate* isolate);
21 
22  // Collect statistics related to code size from large object space.
23  static void CollectCodeStatistics(LargeObjectSpace* space, Isolate* isolate);
24 
25  // Reset code size related statistics
26  static void ResetCodeAndMetadataStatistics(Isolate* isolate);
27 
28 #ifdef DEBUG
29  // Report statistics about code kind, code+metadata and code comments.
30  static void ReportCodeStatistics(Isolate* isolate);
31 #endif
32 
33  private:
34  static void RecordCodeAndMetadataStatistics(HeapObject* object,
35  Isolate* isolate);
36 
37 #ifdef DEBUG
38  static void CollectCommentStatistics(Isolate* isolate, RelocIterator* it);
39  static void CollectCodeCommentStatistics(HeapObject* obj, Isolate* isolate);
40  static void EnterComment(Isolate* isolate, const char* comment, int delta);
41  static void ResetCodeStatistics(Isolate* isolate);
42 #endif
43 };
44 
45 } // namespace internal
46 } // namespace v8
47 
48 #endif // V8_HEAP_CODE_STATS_H_
Definition: libplatform.h:13