Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 201f3d7

Browse filesBrowse files
theanarkhdanielleadams
authored andcommitted
report: add more heap infos in process report
PR-URL: #43116 Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
1 parent 28c034d commit 201f3d7
Copy full SHA for 201f3d7

File tree

Expand file treeCollapse file tree

3 files changed

+55
-13
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

3 files changed

+55
-13
lines changed
Open diff view settings
Collapse file

‎doc/api/report.md‎

Copy file name to clipboardExpand all lines: doc/api/report.md
+14-5Lines changed: 14 additions & 5 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,20 @@ is provided below for reference.
131131
}
132132
],
133133
"javascriptHeap": {
134-
"totalMemory": 6127616,
135-
"totalCommittedMemory": 4357352,
136-
"usedMemory": 3221136,
137-
"availableMemory": 1521370240,
138-
"memoryLimit": 1526909922,
134+
"totalMemory": 5660672,
135+
"executableMemory": 524288,
136+
"totalCommittedMemory": 5488640,
137+
"availableMemory": 4341379928,
138+
"totalGlobalHandlesMemory": 8192,
139+
"usedGlobalHandlesMemory": 3136,
140+
"usedMemory": 4816432,
141+
"memoryLimit": 4345298944,
142+
"mallocedMemory": 254128,
143+
"externalMemory": 315644,
144+
"peakMallocedMemory": 98752,
145+
"nativeContextCount": 1,
146+
"detachedContextCount": 0,
147+
"doesZapGarbage": 0,
139148
"heapSpaces": {
140149
"read_only_space": {
141150
"memorySize": 524288,
Collapse file

‎src/node_report.cc‎

Copy file name to clipboardExpand all lines: src/node_report.cc
+16-1Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -608,12 +608,27 @@ static void PrintGCStatistics(JSONWriter* writer, Isolate* isolate) {
608608

609609
writer->json_objectstart("javascriptHeap");
610610
writer->json_keyvalue("totalMemory", v8_heap_stats.total_heap_size());
611+
writer->json_keyvalue("executableMemory",
612+
v8_heap_stats.total_heap_size_executable());
611613
writer->json_keyvalue("totalCommittedMemory",
612614
v8_heap_stats.total_physical_size());
613-
writer->json_keyvalue("usedMemory", v8_heap_stats.used_heap_size());
614615
writer->json_keyvalue("availableMemory",
615616
v8_heap_stats.total_available_size());
617+
writer->json_keyvalue("totalGlobalHandlesMemory",
618+
v8_heap_stats.total_global_handles_size());
619+
writer->json_keyvalue("usedGlobalHandlesMemory",
620+
v8_heap_stats.used_global_handles_size());
621+
writer->json_keyvalue("usedMemory", v8_heap_stats.used_heap_size());
616622
writer->json_keyvalue("memoryLimit", v8_heap_stats.heap_size_limit());
623+
writer->json_keyvalue("mallocedMemory", v8_heap_stats.malloced_memory());
624+
writer->json_keyvalue("externalMemory", v8_heap_stats.external_memory());
625+
writer->json_keyvalue("peakMallocedMemory",
626+
v8_heap_stats.peak_malloced_memory());
627+
writer->json_keyvalue("nativeContextCount",
628+
v8_heap_stats.number_of_native_contexts());
629+
writer->json_keyvalue("detachedContextCount",
630+
v8_heap_stats.number_of_detached_contexts());
631+
writer->json_keyvalue("doesZapGarbage", v8_heap_stats.does_zap_garbage());
617632

618633
writer->json_objectstart("heapSpaces");
619634
// Loop through heap spaces
Collapse file

‎test/common/report.js‎

Copy file name to clipboardExpand all lines: test/common/report.js
+25-7Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,14 +193,32 @@ function _validateContent(report, fields = []) {
193193

194194
// Verify the format of the javascriptHeap section.
195195
const heap = report.javascriptHeap;
196-
const jsHeapFields = ['totalMemory', 'totalCommittedMemory', 'usedMemory',
197-
'availableMemory', 'memoryLimit', 'heapSpaces'];
196+
// See `PrintGCStatistics` in node_report.cc
197+
const jsHeapFields = [
198+
'totalMemory',
199+
'executableMemory',
200+
'totalCommittedMemory',
201+
'availableMemory',
202+
'totalGlobalHandlesMemory',
203+
'usedGlobalHandlesMemory',
204+
'usedMemory',
205+
'memoryLimit',
206+
'mallocedMemory',
207+
'externalMemory',
208+
'peakMallocedMemory',
209+
'nativeContextCount',
210+
'detachedContextCount',
211+
'doesZapGarbage',
212+
'heapSpaces',
213+
];
198214
checkForUnknownFields(heap, jsHeapFields);
199-
assert(Number.isSafeInteger(heap.totalMemory));
200-
assert(Number.isSafeInteger(heap.totalCommittedMemory));
201-
assert(Number.isSafeInteger(heap.usedMemory));
202-
assert(Number.isSafeInteger(heap.availableMemory));
203-
assert(Number.isSafeInteger(heap.memoryLimit));
215+
// Do not check `heapSpaces` here
216+
for (let i = 0; i < jsHeapFields.length - 1; i++) {
217+
assert(
218+
Number.isSafeInteger(heap[jsHeapFields[i]]),
219+
`heap.${jsHeapFields[i]} is not a safe integer`
220+
);
221+
}
204222
assert(typeof heap.heapSpaces === 'object' && heap.heapSpaces !== null);
205223
const heapSpaceFields = ['memorySize', 'committedMemory', 'capacity',
206224
'used', 'available'];

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.