PerformanceManager

See source code
Table of contents

Manages performance event subscriptions for the editor. Available as editor.performance.

Listeners are lazy — internal editor hooks (frame, shape events) are only attached while at least one subscriber exists, so there is zero overhead when unused.

class PerformanceManager {}

Example

const unsub = editor.performance.on("interaction-end", (event) => {
  console.log(
    `${event.name}: ${event.fps.toFixed(1)} fps, p95=${event.p95FrameTime.toFixed(1)}ms`,
  );
});

Constructor

Constructs a new instance of the PerformanceManager class

Parameters

NameDescription

editor

Editor;

Methods

on( )

Subscribe to a performance event. Returns an unsubscribe function.

on<K extends keyof TLPerfEventMap>(
  event: K,
  fn: (...args: TLPerfEventMap[K]) => void,
): () => void;

Example

const unsub = editor.performance.on("interaction-end", (event) => {
  sendToAnalytics({
    name: event.name,
    fps: event.fps,
    p95: event.p95FrameTime,
  });
});
// later: unsub()

Parameters

NameDescription

event

K;

fn

(...args: TLPerfEventMap[K]) => void;

Returns

() => void;

once( )

Subscribe to a performance event once. The listener is removed after the first invocation. Returns an unsubscribe function for early removal.

once<K extends keyof TLPerfEventMap>(
  event: K,
  fn: (...args: TLPerfEventMap[K]) => void,
): () => void;

Parameters

NameDescription

event

K;

fn

(...args: TLPerfEventMap[K]) => void;

Returns

() => void;

Prev
PerformanceApiAdapter
Next
Point2d