{ "domain": "Profiler", "types": [ { "id": "ProfileHeader", "type": "object", "description": "Profile header.", "properties": [ { "name": "typeId", "type": "string", "enum": ["CPU", "CSS", "HEAP"], "description": "Profile type name." }, { "name": "title", "type": "string", "description": "Profile title." }, { "name": "uid", "type": "integer", "description": "Unique identifier of the profile." }, { "name": "maxJSObjectId", "type": "integer", "optional": true, "description": "Last seen JS object Id." } ] }, { "id": "CPUProfileNode", "type": "object", "description": "CPU Profile node. Holds callsite information, execution statistics and child nodes.", "properties": [ { "name": "functionName", "type": "string", "description": "Function name." }, { "name": "url", "type": "string", "description": "URL." }, { "name": "lineNumber", "type": "integer", "description": "Line number." }, { "name": "totalTime", "type": "number", "description": "Total execution time." }, { "name": "selfTime", "type": "number", "description": "Self time." }, { "name": "numberOfCalls", "type": "integer", "description": "Number of calls." }, { "name": "callUID", "type": "number", "description": "Call UID." }, { "name": "children", "type": "array", "items": { "$ref": "CPUProfileNode" }, "description": "Child nodes." }, { "name": "id", "optional": true, "type": "integer", "description": "Unique id of the node." } ] }, { "id": "CPUProfile", "type": "object", "description": "Profile.", "properties": [ { "name": "head", "$ref": "CPUProfileNode", "optional": true }, { "name": "idleTime", "type": "number", "optional": true }, { "name": "samples", "optional": true, "type": "array", "items": { "type": "integer" }, "description": "Ids of samples top nodes." } ] }, { "id": "HeapSnapshotObjectId", "type": "string", "description": "Heap snashot object id." } ], "commands": [ { "name": "isSampling", "returns": [ { "name": "result", "type": "boolean" } ] }, { "name": "hasHeapProfiler", "returns": [ { "name": "result", "type": "boolean" } ] }, { "name": "enable" }, { "name": "disable" }, { "name": "start" }, { "name": "stop" }, { "name": "getProfileHeaders", "returns": [ { "name": "headers", "type": "array", "items": { "$ref": "ProfileHeader"} } ] }, { "name": "getCPUProfile", "parameters": [ { "name": "uid", "type": "integer" } ], "returns": [ { "name": "profile", "$ref": "CPUProfile" } ] }, { "name": "getHeapSnapshot", "parameters": [ { "name": "uid", "type": "integer" } ] }, { "name": "removeProfile", "parameters": [ { "name": "type", "type": "string" }, { "name": "uid", "type": "integer" } ] }, { "name": "clearProfiles" }, { "name": "takeHeapSnapshot", "parameters": [ { "name": "reportProgress", "type": "boolean", "optional": true, "description": "If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken." } ] }, { "name": "collectGarbage" }, { "name": "getObjectByHeapObjectId", "parameters": [ { "name": "objectId", "$ref": "HeapSnapshotObjectId" }, { "name": "objectGroup", "type": "string", "optional": true, "description": "Symbolic group name that can be used to release multiple objects." } ], "returns": [ { "name": "result", "$ref": "Runtime.RemoteObject", "description": "Evaluation result." } ] }, { "name": "getHeapObjectId", "parameters": [ { "name": "objectId", "$ref": "Runtime.RemoteObjectId", "description": "Identifier of the object to get heap object id for." } ], "returns": [ { "name": "heapSnapshotObjectId", "$ref": "HeapSnapshotObjectId", "description": "Id of the heap snapshot object corresponding to the passed remote object id." } ] } ], "events": [ { "name": "addProfileHeader", "parameters": [ { "name": "header", "$ref": "ProfileHeader" } ] }, { "name": "addHeapSnapshotChunk", "parameters": [ { "name": "uid", "type": "integer" }, { "name": "chunk", "type": "string" } ] }, { "name": "finishHeapSnapshot", "parameters": [ { "name": "uid", "type": "integer" } ] }, { "name": "setRecordingProfile", "parameters": [ { "name": "isProfiling", "type": "boolean" } ] }, { "name": "resetProfiles" }, { "name": "reportHeapSnapshotProgress", "parameters": [ { "name": "done", "type": "integer" }, { "name": "total", "type": "integer" } ] } ] }