Skip to content

@graphty/graphty-element / managers / StatsManager

Class: StatsManager

Defined in: src/managers/StatsManager.ts:154

Manages performance statistics and monitoring Centralizes all performance tracking and reporting

Implements

Constructors

Constructor

new StatsManager(eventManager): StatsManager

Defined in: src/managers/StatsManager.ts:197

Creates a new stats manager for performance tracking

Parameters

eventManager

EventManager

Event manager for emitting stats events

Returns

StatsManager

Properties

arrowCapUpdate

arrowCapUpdate: PerfCounter

Defined in: src/managers/StatsManager.ts:165


edgeUpdate

edgeUpdate: PerfCounter

Defined in: src/managers/StatsManager.ts:164


graphStep

graphStep: PerfCounter

Defined in: src/managers/StatsManager.ts:162


intersectCalc

intersectCalc: PerfCounter

Defined in: src/managers/StatsManager.ts:166


loadTime

loadTime: PerfCounter

Defined in: src/managers/StatsManager.ts:167


nodeUpdate

nodeUpdate: PerfCounter

Defined in: src/managers/StatsManager.ts:163


totalUpdates

totalUpdates: number = 0

Defined in: src/managers/StatsManager.ts:168

Methods

decrementCounter()

decrementCounter(label, amount): void

Defined in: src/managers/StatsManager.ts:1266

Decrement a counter by a specified amount

Parameters

label

string

Counter identifier

amount

number = 1

Amount to decrement (default: 1)

Returns

void


disableFrameProfiling()

disableFrameProfiling(): void

Defined in: src/managers/StatsManager.ts:505

Disable frame-level blocking detection and clear data

Returns

void


disableProfiling()

disableProfiling(): void

Defined in: src/managers/StatsManager.ts:467

Disable detailed profiling and clear measurements

Returns

void


dispose()

dispose(): void

Defined in: src/managers/StatsManager.ts:213

Dispose the stats manager and clean up instrumentation

Returns

void

Implementation of

Manager.dispose


enableFrameProfiling()

enableFrameProfiling(): void

Defined in: src/managers/StatsManager.ts:479

Enable frame-level blocking detection This tracks operations within each frame and correlates them with inter-frame time to identify which operations cause blocking overhead

Returns

void


enableProfiling()

enableProfiling(): void

Defined in: src/managers/StatsManager.ts:460

Enable detailed profiling

Returns

void


endFrameProfiling()

endFrameProfiling(): void

Defined in: src/managers/StatsManager.ts:533

End profiling for the current frame Should be called at the end of each frame

Returns

void


endLayoutSession()

endLayoutSession(): void

Defined in: src/managers/StatsManager.ts:908

End tracking a layout session

Returns

void


endMeasurement()

endMeasurement(label): void

Defined in: src/managers/StatsManager.ts:728

End manual timing

Parameters

label

string

Label for this measurement (must match startMeasurement)

Returns

void


getBlockingReport()

getBlockingReport(): OperationBlockingStats[]

Defined in: src/managers/StatsManager.ts:595

Get blocking correlation report Shows which operations appear most often in high-blocking frames

Returns

OperationBlockingStats[]

Array of operation statistics sorted by blocking correlation


getCounter()

getCounter(label): number

Defined in: src/managers/StatsManager.ts:1314

Get current value of a counter

Parameters

label

string

Counter identifier

Returns

number

Current counter value (0 if not found)


getCountersSnapshot()

getCountersSnapshot(): CounterSnapshot[]

Defined in: src/managers/StatsManager.ts:1358

Get snapshot of all counters

Returns

CounterSnapshot[]

Array of counter snapshots


getPerformanceSummary()

getPerformanceSummary(): object

Defined in: src/managers/StatsManager.ts:429

Get performance summary

Returns

object

Summary of key performance metrics

drawCalls

drawCalls: number

fps

fps: number

frameTime

frameTime: number

gpuTime

gpuTime: number

renderTime

renderTime: number


getSnapshot()

getSnapshot(): PerformanceSnapshot

Defined in: src/managers/StatsManager.ts:831

Get comprehensive performance snapshot

Returns

PerformanceSnapshot

Complete performance data including CPU, GPU, and scene metrics


getStats()

getStats(): object

Defined in: src/managers/StatsManager.ts:336

Get current statistics

Returns

object

Current graph statistics including counts and performance metrics

arrowCapUpdateCount

arrowCapUpdateCount: number

edgeUpdateCount

edgeUpdateCount: number

meshCacheHits

meshCacheHits: number

meshCacheMisses

meshCacheMisses: number

nodeUpdateCount

nodeUpdateCount: number

numEdges

numEdges: number

numNodes

numNodes: number

totalUpdates

totalUpdates: number


incrementCounter()

incrementCounter(label, amount): void

Defined in: src/managers/StatsManager.ts:1242

Increment a counter by a specified amount

Parameters

label

string

Counter identifier

amount

number = 1

Amount to increment (default: 1)

Returns

void


init()

init(): Promise<void>

Defined in: src/managers/StatsManager.ts:205

Initialize the stats manager

Returns

Promise<void>

Promise that resolves when initialization is complete

Implementation of

Manager.init


initializeBabylonInstrumentation()

initializeBabylonInstrumentation(scene, engine): void

Defined in: src/managers/StatsManager.ts:241

Initialize Babylon.js instrumentation Should be called after scene and engine are created

Parameters

scene

Scene

The Babylon.js scene

engine

The Babylon.js engine (Engine or WebGPUEngine)

Engine | WebGPUEngine

Returns

void


measure()

measure<T>(label, fn): T

Defined in: src/managers/StatsManager.ts:668

Measure synchronous code execution

Type Parameters

T

T

Parameters

label

string

Label for this measurement

fn

() => T

Function to measure

Returns

T

The return value of fn


measureAsync()

measureAsync<T>(label, fn): Promise<T>

Defined in: src/managers/StatsManager.ts:693

Measure async code execution

Type Parameters

T

T

Parameters

label

string

Label for this measurement

fn

() => Promise<T>

Async function to measure

Returns

Promise<T>

Promise resolving to the return value of fn


reportDetailed()

reportDetailed(): void

Defined in: src/managers/StatsManager.ts:971

Report detailed performance data to console

Returns

void


reset()

reset(): void

Defined in: src/managers/StatsManager.ts:314

Reset all counters

Returns

void


resetAllCounters()

resetAllCounters(): void

Defined in: src/managers/StatsManager.ts:1343

Reset all counters to 0

Returns

void


resetCounter()

resetCounter(label): void

Defined in: src/managers/StatsManager.ts:1327

Reset a specific counter to 0

Parameters

label

string

Counter identifier

Returns

void


resetMeasurements()

resetMeasurements(): void

Defined in: src/managers/StatsManager.ts:751

Reset detailed measurements (keep BabylonJS instrumentation running)

Returns

void


setCounter()

setCounter(label, value): void

Defined in: src/managers/StatsManager.ts:1290

Set a counter to a specific value

Parameters

label

string

Counter identifier

value

number

Value to set

Returns

void


startFrameProfiling()

startFrameProfiling(): void

Defined in: src/managers/StatsManager.ts:520

Start profiling a new frame Should be called at the beginning of each frame

Returns

void


startLayoutSession()

startLayoutSession(): void

Defined in: src/managers/StatsManager.ts:900

Start tracking a layout session

Returns

void


startMeasurement()

startMeasurement(label): void

Defined in: src/managers/StatsManager.ts:716

Start manual timing

Parameters

label

string

Label for this measurement

Returns

void


step()

step(): void

Defined in: src/managers/StatsManager.ts:299

Increment update counter

Returns

void


toString()

toString(): string

Defined in: src/managers/StatsManager.ts:362

Generate a human-readable statistics report

Returns

string

Formatted string with all statistics


updateCacheStats()

updateCacheStats(hits, misses): void

Defined in: src/managers/StatsManager.ts:281

Update cache statistics

Parameters

hits

number

Number of cache hits

misses

number

Number of cache misses

Returns

void


updateCounts()

updateCounts(nodeCount, edgeCount): void

Defined in: src/managers/StatsManager.ts:291

Update node/edge counts

Parameters

nodeCount

number

Current number of nodes

edgeCount

number

Current number of edges

Returns

void