Profiler
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The Profiler
interface of the JS Self-Profiling API enables you to create a profile of some part of your web application's execution.
Constructor
Profiler()
Experimental-
Creates a new
Profiler
object, and starts collecting samples.
Instance methods
Profiler.stop()
Experimental-
Stops the profiler, returning a
Promise
that resolves to the profile.
Events
samplebufferfull
-
Fired when the profile has recorded enough samples to fill its internal buffer.
Examples
Recording a profile
The following code profiles the doWork()
operation, and logs the result.
const profiler = new Profiler({ sampleInterval: 10, maxBufferSize: 10000 });
doWork();
const profile = await profiler.stop();
console.log(JSON.stringify(profile));
Profiling page load
The following code profiles the time between the script first running and the window's load
event firing.
const profiler = new Profiler({ sampleInterval: 10, maxBufferSize: 10000 });
window.addEventListener("load", async () => {
const profile = await profiler.stop();
console.log(JSON.stringify(profile));
});
Specifications
Specification |
---|
JS Self-Profiling API # the-profiler-interface |