You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Alternatively, you can use it in vanilla JS, without any bundler, by using a CDN or static hosting. For example, using ES Modules, you can import the library with:
const{ TraceEvents, trackRequires }=require('perftrace');const{ writeFileSync }=require('fs');consttraceEvents=newTraceEvents();// Writes the performance traces in the "events.json" file during process exit.process.on("beforeExit",()=>{constevents=traceEvents.getEvents();traceEvents.destroy();writeFileSync("events.json",JSON.stringify(events));});// Enables tracking require() calls.trackRequires(true,{trackSource: true});// The assert module takes milliseconds to load, so it would be distinctly// visible in the performance trace.constassert=require('assert');const{ performance }=require("node:perf_hooks");// This is tracing an async setTimeout event which is interlaced with// repeating setInterval events.performance.mark("Timeout mark");// marks the beginning of the timeout tracesetTimeout(()=>{performance.measure("Timeout","Timeout mark");// marks the ending of the timeout trace},20);letid=0;performance.mark(`Interval mark ${id}`);// marks the beginning of the first interval tracesetInterval(function(){performance.measure(`Interval ${id}`,`Interval mark ${id}`);// marks the ending of the current interval trace++id;// The intervals should go up to 3 counts only.if(id===3){this.close();}performance.mark(`Interval mark ${id}`);// marks the beginning of the next interval trace},5);
After running this script with node filename.js, open the generated events.json file on https://ui.perfetto.dev.