@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 1.2 kB
JavaScript
import*as TraceEngine from"../../models/trace/trace.js";export class PerformanceTracing{#e=[];#t=null;#a;constructor(e,t){this.#t=e.model(TraceEngine.TracingManager.TracingManager),this.#a=t}async start(){if(this.#e.length=0,!this.#t)throw new Error("No tracing manager");const e=["-*","blink.console","blink.user_timing","devtools.timeline","disabled-by-default-devtools.screenshot","disabled-by-default-devtools.timeline","disabled-by-default-devtools.timeline.invalidationTracking","disabled-by-default-devtools.timeline.frame","disabled-by-default-devtools.timeline.stack","disabled-by-default-v8.cpu_profiler","disabled-by-default-v8.cpu_profiler.hires","latencyInfo","loading","disabled-by-default-lighthouse","v8.execute","v8"].join(",");if(!await this.#t.start(this,e,""))throw new Error("Unable to start tracing.")}async stop(){return this.#t?.stop()}getTraceEvents(){return this.#e}traceEventsCollected(e){this.#e.push(...e)}tracingBufferUsage(e){this.#a.tracingBufferUsage(e)}eventsRetrievalProgress(e){this.#a.eventsRetrievalProgress(e)}tracingComplete(){this.#a.tracingComplete(this.#e)}}export class RawTraceEvents{events;constructor(e){this.events=e}getEvents(){return this.events}}