polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
97 lines • 2.85 kB
TypeScript
import { EventEmitter } from 'events';
export interface MemoryManagerConfig {
warningThreshold: number;
criticalThreshold: number;
cleanupInterval: number;
enableAutoCleanup: boolean;
enableGcForcing: boolean;
gcInterval: number;
enableLeakDetection: boolean;
leakDetectionInterval: number;
trendSampleCount: number;
}
export interface MemorySnapshot {
timestamp: number;
rss: number;
heapUsed: number;
heapTotal: number;
external: number;
arrayBuffers: number;
usagePercentage: number;
}
export interface MemoryStats {
current: MemorySnapshot;
peak: MemorySnapshot;
average: {
rss: number;
heapUsed: number;
heapTotal: number;
};
growthRate: number;
cleanupCount: number;
gcCount: number;
leakAlerts: number;
pressureLevel: 'normal' | 'warning' | 'critical';
}
export interface LeakDetection {
leakDetected: boolean;
severity: 'low' | 'medium' | 'high';
growthTrend: 'stable' | 'growing' | 'rapidly_growing';
growthRatePerMinute: number;
confidence: number;
recommendations: string[];
}
export interface ManagedResource {
id: string;
type: string;
size: number;
createdAt: number;
lastAccessed: number;
cleanup: () => void;
disposable: boolean;
priority: 'low' | 'medium' | 'high';
}
export declare class MemoryManager extends EventEmitter {
private config;
private snapshots;
private managedResources;
private cleanupTimer?;
private gcTimer?;
private leakDetectionTimer?;
private stats;
private isRunning;
private peakSnapshot?;
constructor(config?: Partial<MemoryManagerConfig>);
start(): void;
stop(): void;
registerResource(resource: Omit<ManagedResource, 'createdAt' | 'lastAccessed'>): void;
unregisterResource(resourceId: string): void;
touchResource(resourceId: string): void;
forceCleanup(): Promise<number>;
forceGarbageCollection(): void;
getStats(): MemoryStats;
getSnapshots(count?: number): MemorySnapshot[];
getManagedResources(): Array<{
id: string;
type: string;
size: number;
age: number;
lastAccessed: number;
priority: string;
}>;
detectMemoryLeaks(): LeakDetection;
setPressureLevel(level: MemoryStats['pressureLevel']): void;
updateConfig(newConfig: Partial<MemoryManagerConfig>): void;
private takeMemorySnapshot;
private updateStats;
private updatePressureLevel;
private handleCriticalMemoryPressure;
private startCleanupMonitoring;
private startGcMonitoring;
private startLeakDetection;
private performCleanup;
private calculateGrowthRates;
private calculateGrowthConsistency;
private generateLeakRecommendations;
}
//# sourceMappingURL=memory-manager.d.ts.map