39 lines
892 B
TypeScript
39 lines
892 B
TypeScript
|
/// <reference types="node" />
|
||
|
import type { Session } from "inspector";
|
||
|
export type Profile = {
|
||
|
nodes: Array<ProfileNode>;
|
||
|
startTime: number;
|
||
|
endTime: number;
|
||
|
samples?: Array<number>;
|
||
|
timeDeltas?: Array<number>;
|
||
|
};
|
||
|
type ProfileNode = {
|
||
|
id: number;
|
||
|
callFrame: CallFrame;
|
||
|
hitCount?: number;
|
||
|
children?: Array<number>;
|
||
|
deoptReason?: string;
|
||
|
positionTicks?: PositionTickInfo;
|
||
|
};
|
||
|
type CallFrame = {
|
||
|
functionName: string;
|
||
|
scriptId: string;
|
||
|
url: string;
|
||
|
lineNumber: string;
|
||
|
columnNumber: string;
|
||
|
};
|
||
|
type PositionTickInfo = {
|
||
|
line: number;
|
||
|
ticks: number;
|
||
|
};
|
||
|
export default class SamplingProfiler {
|
||
|
session: Session;
|
||
|
startProfiling(): Promise<unknown>;
|
||
|
sendCommand(method: string, params?: unknown): Promise<{
|
||
|
profile: Profile;
|
||
|
}>;
|
||
|
destroy(): void;
|
||
|
stopProfiling(): Promise<Profile>;
|
||
|
}
|
||
|
export {};
|