File tree 4 files changed +21
-3
lines changed
4 files changed +21
-3
lines changed Original file line number Diff line number Diff line change @@ -180,6 +180,9 @@ Returns an object with the following properties:
180
180
* ` does_zap_garbage ` {number}
181
181
* ` number_of_native_contexts ` {number}
182
182
* ` number_of_detached_contexts ` {number}
183
+ * ` total_global_handles_size ` {number}
184
+ * ` used_global_handles_size ` {number}
185
+ * ` external_memory ` {number}
183
186
184
187
` does_zap_garbage ` is a 0/1 boolean, which signifies whether the
185
188
` --zap_code_space ` option is enabled or not. This makes V8 overwrite heap
@@ -209,7 +212,10 @@ being non-zero indicates a potential memory leak.
209
212
peak_malloced_memory: 1127496 ,
210
213
does_zap_garbage: 0 ,
211
214
number_of_native_contexts: 1 ,
212
- number_of_detached_contexts: 0
215
+ number_of_detached_contexts: 0 ,
216
+ total_global_handles_size: 8192 ,
217
+ used_global_handles_size: 3296 ,
218
+ external_memory: 318824
213
219
}
214
220
```
215
221
Original file line number Diff line number Diff line change @@ -107,6 +107,9 @@ const {
107
107
kPeakMallocedMemoryIndex,
108
108
kNumberOfNativeContextsIndex,
109
109
kNumberOfDetachedContextsIndex,
110
+ kTotalGlobalHandlesSizeIndex,
111
+ kUsedGlobalHandlesSizeIndex,
112
+ kExternalMemoryIndex,
110
113
111
114
// Properties for heap spaces statistics buffer extraction.
112
115
kHeapSpaces,
@@ -165,7 +168,10 @@ function getHeapStatistics() {
165
168
peak_malloced_memory : buffer [ kPeakMallocedMemoryIndex ] ,
166
169
does_zap_garbage : buffer [ kDoesZapGarbageIndex ] ,
167
170
number_of_native_contexts : buffer [ kNumberOfNativeContextsIndex ] ,
168
- number_of_detached_contexts : buffer [ kNumberOfDetachedContextsIndex ]
171
+ number_of_detached_contexts : buffer [ kNumberOfDetachedContextsIndex ] ,
172
+ total_global_handles_size : buffer [ kTotalGlobalHandlesSizeIndex ] ,
173
+ used_global_handles_size : buffer [ kUsedGlobalHandlesSizeIndex ] ,
174
+ external_memory : buffer [ kExternalMemoryIndex ]
169
175
} ;
170
176
}
171
177
Original file line number Diff line number Diff line change @@ -59,7 +59,10 @@ using v8::Value;
59
59
V (7 , peak_malloced_memory, kPeakMallocedMemoryIndex ) \
60
60
V (8 , does_zap_garbage, kDoesZapGarbageIndex ) \
61
61
V (9 , number_of_native_contexts, kNumberOfNativeContextsIndex ) \
62
- V (10 , number_of_detached_contexts, kNumberOfDetachedContextsIndex )
62
+ V (10 , number_of_detached_contexts, kNumberOfDetachedContextsIndex ) \
63
+ V (11 , total_global_handles_size, kTotalGlobalHandlesSizeIndex ) \
64
+ V (12 , used_global_handles_size, kUsedGlobalHandlesSizeIndex ) \
65
+ V (13 , external_memory, kExternalMemoryIndex )
63
66
64
67
#define V (a, b, c ) +1
65
68
static constexpr size_t kHeapStatisticsPropertiesCount =
Original file line number Diff line number Diff line change @@ -6,15 +6,18 @@ const v8 = require('v8');
6
6
const s = v8 . getHeapStatistics ( ) ;
7
7
const keys = [
8
8
'does_zap_garbage' ,
9
+ 'external_memory' ,
9
10
'heap_size_limit' ,
10
11
'malloced_memory' ,
11
12
'number_of_detached_contexts' ,
12
13
'number_of_native_contexts' ,
13
14
'peak_malloced_memory' ,
14
15
'total_available_size' ,
16
+ 'total_global_handles_size' ,
15
17
'total_heap_size' ,
16
18
'total_heap_size_executable' ,
17
19
'total_physical_size' ,
20
+ 'used_global_handles_size' ,
18
21
'used_heap_size' ] ;
19
22
assert . deepStrictEqual ( Object . keys ( s ) . sort ( ) , keys ) ;
20
23
keys . forEach ( function ( key ) {
You can’t perform that action at this time.
0 commit comments