Profiler Domain
Methods
- Profiler.disable
- Profiler.enable
- Profiler.getBestEffortCoverage
- Profiler.setSamplingInterval
- Profiler.start
- Profiler.startPreciseCoverage
- Profiler.stop
- Profiler.stopPreciseCoverage
- Profiler.takePreciseCoverage
Events
- Profiler.consoleProfileFinished
- Profiler.consoleProfileStarted
- Profiler.preciseCoverageDeltaUpdate Experimental
Types
Methods
Profiler.disable #
Profiler.getBestEffortCoverage #
Collect coverage data for the current isolate. The coverage data may be incomplete due to garbage collection.
Return object
result
array[ ScriptCoverage ]
Coverage data for the current isolate.
Profiler.setSamplingInterval #
Changes CPU profiler sampling interval. Must be called before CPU profiles recording started.
Parameters
interval
integer
New sampling interval in microseconds.
Profiler.startPreciseCoverage #
Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code coverage may be incomplete. Enabling prevents running optimized code and resets execution counters.
Parameters
callCount
Optional
boolean
Collect accurate call counts beyond simple 'covered' or 'not covered'.
detailed
Optional
boolean
Collect block-based coverage.
allowTriggeredUpdates
Optional
boolean
Allow the backend to send updates on its own initiative
Return object
timestamp
number
Monotonically increasing time (in seconds) when the coverage update was taken in the backend.
Profiler.stopPreciseCoverage #
Disable precise code coverage. Disabling releases unnecessary execution count records and allows executing optimized code.
Profiler.takePreciseCoverage #
Collect coverage data for the current isolate, and resets execution counters. Precise code coverage needs to have started.
Return object
result
array[ ScriptCoverage ]
Coverage data for the current isolate.
timestamp
number
Monotonically increasing time (in seconds) when the coverage update was taken in the backend.
Events
Profiler.consoleProfileFinished #
Parameters
id
string
location
Location of console.profileEnd().
profile
title
Optional
string
Profile title passed as an argument to console.profile().
Profiler.consoleProfileStarted #
Sent when new profile recording is started using console.profile() call.
Parameters
id
string
location
Location of console.profile().
title
Optional
string
Profile title passed as an argument to console.profile().
Profiler.preciseCoverageDeltaUpdate Experimental#
Reports coverage delta since the last poll (either from an event like this, or from
takePreciseCoverage
for the current isolate. May only be sent if precise code
coverage has been started. This event can be trigged by the embedder to, for example,
trigger collection of coverage data immediately at a certain point in time.
Parameters
timestamp
number
Monotonically increasing time (in seconds) when the coverage update was taken in the backend.
occasion
string
Identifier for distinguishing coverage events.
result
array[ ScriptCoverage ]
Coverage data for the current isolate.
Types
Profiler.ProfileNode #
Profile node. Holds callsite information, execution statistics and child nodes.
Type: object
Properties
id
integer
Unique id of the node.
callFrame
Function location.
hitCount
Optional
integer
Number of samples where this node was on top of the call stack.
children
Optional
array[ integer
]
Child node ids.
deoptReason
Optional
string
The reason of being not optimized. The function may be deoptimized or marked as don't optimize.
positionTicks
Optional
array[ PositionTickInfo ]
An array of source position ticks.
Profiler.Profile #
Profile.
Type: object
Properties
nodes
array[ ProfileNode ]
The list of profile nodes. First item is the root node.
startTime
number
Profiling start timestamp in microseconds.
endTime
number
Profiling end timestamp in microseconds.
samples
Optional
array[ integer
]
Ids of samples top nodes.
timeDeltas
Optional
array[ integer
]
Time intervals between adjacent samples in microseconds. The first delta is relative to the profile startTime.
Profiler.PositionTickInfo #
Specifies a number of samples attributed to a certain source position.
Type: object
Properties
line
integer
Source line number (1-based).
ticks
integer
Number of samples attributed to the source line.
Profiler.CoverageRange #
Coverage data for a source range.
Type: object
Properties
startOffset
integer
JavaScript script source offset for the range start.
endOffset
integer
JavaScript script source offset for the range end.
count
integer
Collected execution count of the source range.
Profiler.FunctionCoverage #
Coverage data for a JavaScript function.
Type: object
Properties
functionName
string
JavaScript function name.
ranges
array[ CoverageRange ]
Source ranges inside the function with coverage data.
isBlockCoverage
boolean
Whether coverage data for this function has block granularity.
Profiler.ScriptCoverage #
Coverage data for a JavaScript script.
Type: object
Properties
scriptId
JavaScript script id.
url
string
JavaScript script name or url.
functions
array[ FunctionCoverage ]
Functions contained in the script that has coverage data.