cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
89 lines • 3.18 kB
TypeScript
import { IPerformanceProfiler, ProfilerConfig, PerformanceMetrics, ProfilerReport } from '../types/devtools-interfaces';
/**
* Профилировщик производительности для CSElement
* Отслеживает время выполнения операций и использование памяти
*/
export declare class PerformanceProfiler implements IPerformanceProfiler {
private _config;
private _measurements;
private _history;
private _isEnabled;
constructor(config?: Partial<ProfilerConfig>);
get config(): ProfilerConfig;
/**
* Начать измерение операции
*/
startMeasurement(operationType: string, metadata?: Record<string, any>): string;
/**
* Завершить измерение операции
*/
endMeasurement(measurementId: string): PerformanceMetrics;
/**
* Получить отчет за период
*/
getReport(timeRange?: {
start: number;
end: number;
}): ProfilerReport;
/**
* Очистить историю метрик
*/
clearHistory(): void;
/**
* Включить/выключить профилировщик
*/
setEnabled(enabled: boolean): void;
/**
* Обновить конфигурацию профилировщика
*/
updateConfig(config: Partial<ProfilerConfig>): void;
/**
* Получить статистику по типам операций
*/
getOperationStats(): Record<string, {
count: number;
totalDuration: number;
averageDuration: number;
maxDuration: number;
minDuration: number;
}>;
/**
* Получить активные измерения
*/
getActiveMeasurements(): string[];
/**
* Отменить активное измерение
*/
cancelMeasurement(measurementId: string): boolean;
/**
* Создать снимок текущего состояния
*/
createSnapshot(): {
config: ProfilerConfig;
activeMeasurements: number;
historySize: number;
isEnabled: boolean;
operationStats: Record<string, any>;
};
/**
* Добавить метрику в историю
*/
private addToHistory;
/**
* Получить текущее количество элементов в системе
*/
private getElementCount;
/**
* Получить текущее использование памяти
*/
private getMemoryUsage;
/**
* Создать профиль производительности для функции
*/
profileFunction<T extends (...args: any[]) => any>(fn: T, operationType: string, metadata?: Record<string, any>): T;
/**
* Создать декоратор для профилирования методов
*/
static createProfileDecorator(profiler: PerformanceProfiler, operationType?: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
}
//# sourceMappingURL=PerformanceProfiler.d.ts.map