@awesome-ecs/workers
Version:
The Workers package for Awesome ECS. Provides basic implementation for the Worker communication using ECS.
51 lines (50 loc) • 1.97 kB
text/typescript
import { n as WorkerMetricsSummary, r as WorkerSnapshot } from "./worker-performance-DtRuJrGV.mjs";
import { PerformanceTimeEntry } from "@awesome-ecs/abstract/utils";
//#region src/utils/worker-performance-tracker.d.ts
/**
* Tracks performance metrics for worker operations, allowing for aggregation and analysis of execution times across different worker tasks.
* Metrics are sampled at regular intervals and can be retrieved in summary form for overall or per-worker insights.
*
* @injectable
*/
declare class WorkerPerformanceTracker {
static readonly MAX_SNAPSHOTS = 120;
static readonly SAMPLE_INTERVAL_MS = 250;
private readonly _snapshots;
private readonly _pendingMetrics;
private readonly _perWorkerPending;
private readonly _aggregate;
private readonly _perWorkerAggregate;
private _pendingMaxQueueSize;
private _pendingStalledCount;
private _pendingWaitTimes;
private _lastSampleTime;
private _enabled;
private _aggregateDirty;
private _cachedSummaries;
private _perWorkerDirty;
private _cachedPerWorker;
get snapshots(): ReadonlyArray<WorkerSnapshot>;
get enabled(): boolean;
set enabled(value: boolean);
get queueHistory(): number[];
get stalledHistory(): number[];
get waitTimeHistory(): number[];
get eventTypeHistories(): Map<string, number[]>;
get summaries(): WorkerMetricsSummary[];
get perWorkerSummaries(): Map<string, WorkerMetricsSummary[]>;
recordQueueSize(size: number): void;
recordStalledCount(count: number): void;
recordWaitTimes(times: number[]): void;
addMetric(workerUid: string, entry: PerformanceTimeEntry): void;
addMetrics(workerUid: string, entries: PerformanceTimeEntry[]): void;
sample(now?: number): void;
clear(): void;
private mergeIntoAggregate;
private mergePerWorkerAggregate;
private getOrCreateWorkerAgg;
private mergeEntry;
}
//#endregion
export { WorkerPerformanceTracker as t };
//# sourceMappingURL=worker-performance-tracker-C05lF1yQ.d.mts.map