MCPcopy Create free account
hub / github.com/nodejs/node / parseOneGCEvent

Method parseOneGCEvent

deps/v8/tools/heap-stats/trace-file-reader.js:203–239  ·  view source on GitHub ↗
(actual_data)

Source from the content-addressed store, hash-verified

201 createModelFromChromeTraceFile(contents) {
202 const data = Object.create(null); // Final data container.
203 const parseOneGCEvent = (actual_data) => {
204 Object.keys(actual_data).forEach(data_set => {
205 const string_entry = actual_data[data_set];
206 try {
207 const entry = JSON.parse(string_entry);
208 this.createOrUpdateEntryIfNeeded(data, entry);
209 this.createDatasetIfNeeded(data, entry, data_set);
210 const isolate = entry.isolate;
211 const time = entry.time;
212 const gc_id = entry.id;
213 data[isolate].gcs[gc_id].time = time;
214
215 const field_data = entry.field_data;
216 this.addFieldTypeData(data, isolate, gc_id, data_set,
217 field_data.tagged_fields,
218 field_data.inobject_smi_fields,
219 field_data.embedder_fields,
220 field_data.unboxed_double_fields,
221 field_data.boxed_double_fields,
222 field_data.string_data,
223 field_data.other_raw_fields);
224
225 data[isolate].gcs[gc_id][data_set].bucket_sizes =
226 entry.bucket_sizes;
227 for (let [instance_type, value] of Object.entries(
228 entry.type_data)) {
229 // Trace file format uses markers that do not have actual
230 // properties.
231 if (!('overall' in value)) continue;
232 this.addInstanceTypeData(
233 data, isolate, gc_id, data_set, instance_type, value);
234 }
235 } catch (e) {
236 console.error('Unable to parse data set entry', e);
237 }
238 });
239 };
240 console.log(`Processing log as chrome trace file.`);
241 try {
242 let gc_events_filter = (event) => {

Callers

nothing calls this directly

Calls 9

createDatasetIfNeededMethod · 0.95
addFieldTypeDataMethod · 0.95
addInstanceTypeDataMethod · 0.95
forEachMethod · 0.65
keysMethod · 0.65
parseMethod · 0.65
entriesMethod · 0.45
errorMethod · 0.45

Tested by

no test coverage detected