diff options
Diffstat (limited to 'deps/v8/tools/heap-stats')
-rw-r--r-- | deps/v8/tools/heap-stats/categories.js | 2 | ||||
-rw-r--r-- | deps/v8/tools/heap-stats/global-timeline.js | 18 | ||||
-rw-r--r-- | deps/v8/tools/heap-stats/trace-file-reader.js | 17 |
3 files changed, 28 insertions, 9 deletions
diff --git a/deps/v8/tools/heap-stats/categories.js b/deps/v8/tools/heap-stats/categories.js index e02571b4f8..6560758f3e 100644 --- a/deps/v8/tools/heap-stats/categories.js +++ b/deps/v8/tools/heap-stats/categories.js @@ -77,7 +77,7 @@ const CATEGORIES = new Map([ 'JS_TO_WASM_FUNCTION', 'JS_TYPED_ARRAY_TYPE', 'JS_WEAK_MAP_TYPE', - 'MUTABLE_HEAP_NUMBER_TYPE', + 'HEAP_NUMBER_TYPE', 'NATIVE_CONTEXT_TYPE', 'OBJECT_PROPERTY_DICTIONARY_TYPE', 'ONE_BYTE_INTERNALIZED_STRING_TYPE', diff --git a/deps/v8/tools/heap-stats/global-timeline.js b/deps/v8/tools/heap-stats/global-timeline.js index 3830b7ca33..c34ba2b913 100644 --- a/deps/v8/tools/heap-stats/global-timeline.js +++ b/deps/v8/tools/heap-stats/global-timeline.js @@ -63,9 +63,12 @@ class GlobalTimeline extends HTMLElement { {type: 'number', label: 'Ptr compression benefit'}, {type: 'string', role: 'tooltip'}, {type: 'number', label: 'Embedder fields'}, - {type: 'number', label: 'Tagged fields'}, + {type: 'number', label: 'Tagged fields (excl. in-object Smis)'}, + {type: 'number', label: 'In-object Smi-only fields'}, {type: 'number', label: 'Other raw fields'}, - {type: 'number', label: 'Unboxed doubles'} + {type: 'number', label: 'Unboxed doubles'}, + {type: 'number', label: 'Boxed doubles'}, + {type: 'number', label: 'String data'} ]; const chart_data = [labels]; const isolate_data = this.data[this.selection.isolate]; @@ -78,10 +81,14 @@ class GlobalTimeline extends HTMLElement { const data = []; data.push(gc_data.time * kMillis2Seconds); const total = data_set.tagged_fields + + data_set.inobject_smi_fields + data_set.embedder_fields + data_set.other_raw_fields + - data_set.unboxed_double_fields; - const ptr_compr_benefit = data_set.tagged_fields / 2; + data_set.unboxed_double_fields + + data_set.boxed_double_fields + + data_set.string_data; + const ptr_compr_benefit = + (data_set.inobject_smi_fields + data_set.tagged_fields) / 2; const ptr_compr_benefit_perc = ptr_compr_benefit / total * 100; sum_total += total; sum_ptr_compr_benefit_perc += ptr_compr_benefit_perc; @@ -93,8 +100,11 @@ class GlobalTimeline extends HTMLElement { data.push(tooltip); data.push(data_set.embedder_fields / KB); data.push(data_set.tagged_fields / KB); + data.push(data_set.inobject_smi_fields / KB); data.push(data_set.other_raw_fields / KB); data.push(data_set.unboxed_double_fields / KB); + data.push(data_set.boxed_double_fields / KB); + data.push(data_set.string_data / KB); chart_data.push(data); }); const avg_ptr_compr_benefit_perc = diff --git a/deps/v8/tools/heap-stats/trace-file-reader.js b/deps/v8/tools/heap-stats/trace-file-reader.js index 4fec9a1cb9..86d9d7d551 100644 --- a/deps/v8/tools/heap-stats/trace-file-reader.js +++ b/deps/v8/tools/heap-stats/trace-file-reader.js @@ -137,11 +137,15 @@ class TraceFileReader extends HTMLElement { } addFieldTypeData(data, isolate, gc_id, data_set, tagged_fields, - embedder_fields, unboxed_double_fields, other_raw_fields) { + inobject_smi_fields, embedder_fields, unboxed_double_fields, + boxed_double_fields, string_data, other_raw_fields) { data[isolate].gcs[gc_id][data_set].field_data = { tagged_fields, + inobject_smi_fields, embedder_fields, unboxed_double_fields, + boxed_double_fields, + string_data, other_raw_fields }; } @@ -217,8 +221,12 @@ class TraceFileReader extends HTMLElement { const field_data = entry.field_data; this.addFieldTypeData(data, isolate, gc_id, data_set, - field_data.tagged_fields, field_data.embedder_fields, + field_data.tagged_fields, + field_data.inobject_smi_fields, + field_data.embedder_fields, field_data.unboxed_double_fields, + field_data.boxed_double_fields, + field_data.string_data, field_data.other_raw_fields); data[isolate].gcs[gc_id][data_set].bucket_sizes = @@ -282,8 +290,9 @@ class TraceFileReader extends HTMLElement { this.createOrUpdateEntryIfNeeded(data, entry); this.createDatasetIfNeeded(data, entry, entry.key); this.addFieldTypeData(data, entry.isolate, entry.id, entry.key, - entry.tagged_fields, entry.embedder_fields, - entry.unboxed_double_fields, entry.other_raw_fields); + entry.tagged_fields, entry.embedder_fields, entry.inobject_smi_fields, + entry.unboxed_double_fields, entry.boxed_double_fields, + entry.string_data, entry.other_raw_fields); } else if (entry.type === 'instance_type_data') { if (entry.id in data[entry.isolate].gcs) { this.createOrUpdateEntryIfNeeded(data, entry); |