File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -180,6 +180,9 @@ Returns an object with the following properties:
180180* ` does_zap_garbage ` {number}
181181* ` number_of_native_contexts ` {number}
182182* ` number_of_detached_contexts ` {number}
183+ * ` total_global_handles_size ` {number}
184+ * ` used_global_handles_size ` {number}
185+ * ` external_memory ` {number}
183186
184187` does_zap_garbage ` is a 0/1 boolean, which signifies whether the
185188` --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.
209212 peak_malloced_memory: 1127496 ,
210213 does_zap_garbage: 0 ,
211214 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
213219}
214220```
215221
Original file line number Diff line number Diff line change @@ -107,6 +107,9 @@ const {
107107 kPeakMallocedMemoryIndex,
108108 kNumberOfNativeContextsIndex,
109109 kNumberOfDetachedContextsIndex,
110+ kTotalGlobalHandlesSizeIndex,
111+ kUsedGlobalHandlesSizeIndex,
112+ kExternalMemoryIndex,
110113
111114 // Properties for heap spaces statistics buffer extraction.
112115 kHeapSpaces,
@@ -165,7 +168,10 @@ function getHeapStatistics() {
165168 peak_malloced_memory : buffer [ kPeakMallocedMemoryIndex ] ,
166169 does_zap_garbage : buffer [ kDoesZapGarbageIndex ] ,
167170 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 ]
169175 } ;
170176}
171177
Original file line number Diff line number Diff line change @@ -59,7 +59,10 @@ using v8::Value;
5959 V (7 , peak_malloced_memory, kPeakMallocedMemoryIndex ) \
6060 V (8 , does_zap_garbage, kDoesZapGarbageIndex ) \
6161 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 )
6366
6467#define V (a, b, c ) +1
6568static constexpr size_t kHeapStatisticsPropertiesCount =
Original file line number Diff line number Diff line change @@ -6,15 +6,18 @@ const v8 = require('v8');
66const s = v8 . getHeapStatistics ( ) ;
77const keys = [
88 'does_zap_garbage' ,
9+ 'external_memory' ,
910 'heap_size_limit' ,
1011 'malloced_memory' ,
1112 'number_of_detached_contexts' ,
1213 'number_of_native_contexts' ,
1314 'peak_malloced_memory' ,
1415 'total_available_size' ,
16+ 'total_global_handles_size' ,
1517 'total_heap_size' ,
1618 'total_heap_size_executable' ,
1719 'total_physical_size' ,
20+ 'used_global_handles_size' ,
1821 'used_heap_size' ] ;
1922assert . deepStrictEqual ( Object . keys ( s ) . sort ( ) , keys ) ;
2023keys . forEach ( function ( key ) {
You can’t perform that action at this time.
0 commit comments