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 Profilerobject, and starts collecting samples.
Instance methods
- Profiler.stop()Experimental
- 
Stops the profiler, returning a Promisethat 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> | 
Browser compatibility
Loading…