You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Because toJSON works recursively dprof can reach a stack overflow. This could be fixed by flattening the format, such the root is a uid map and node.children is a uid list.
Root{version: String,// the version of dprof there generated this JSON filetotal: Number,// execution time in nanosecondsroot: {Number(uid): Node, ...
}}Node{name: String,// Handle name of the async operationstack: [// Contains the stack leading up to the async operation{description: String,filename: String,column: Number,line: Number}, ...
],init: Number,// Timestamp for when the async operation is requested.before: [Number],// Timestamp for when the callback is about to be called.// This is an array because a callback may be called more// than once.after: [Number],// Timestamp for when the callback is finished.// All timestamps are relative to the process startup time// and the unit is nanoseconds.unrefed: Boolean,// `true` if the handle will not keep the event loop open.children: [// Shows async operations created in the callbackuid, ...
]}
The text was updated successfully, but these errors were encountered:
It may be better to use a 2d array, such it easily can be transferred to and from a Map. (from: Array.from(items.entries()), to new Map(Root.root)).
Root{version: String,// the version of dprof there generated this JSON filetotal: Number,// execution time in nanosecondsroot: [[Number(uid),Node],
...
]}
Because
toJSON
works recursivelydprof
can reach a stack overflow. This could be fixed by flattening the format, such the root is a uid map andnode.children
is a uid list.The text was updated successfully, but these errors were encountered: