UNPKG

autopv-cli

Version:

AutoPrivacy DSAR evidence-pack generator - Automated GDPR compliance for SaaS companies

88 lines (87 loc) 2.42 kB
/** * Performance monitoring and memory optimization utilities * Ensures AutoPrivacy CLI stays under 300MB RAM for large org exports */ export interface PerformanceMetrics { startTime: number; peakMemoryMB: number; currentMemoryMB: number; processedItems: number; estimatedTotalItems: number; stage: string; } export declare class PerformanceMonitor { private startTime; private peakMemoryMB; private processedItems; private estimatedTotal; private currentStage; private memoryCheckInterval; constructor(); /** * Start continuous memory monitoring to track peak usage */ private startMemoryMonitoring; /** * Get current memory usage in MB */ getCurrentMemoryMB(): number; /** * Update processing progress */ updateProgress(stage: string, processed: number, estimated?: number): void; /** * Get current performance metrics */ getMetrics(): PerformanceMetrics; /** * Force garbage collection if available */ forceGarbageCollection(): void; /** * Log performance summary */ logSummary(): void; /** * Stop monitoring and cleanup */ stop(): void; } /** * Stream processing utility for large datasets * Processes data in chunks to maintain memory efficiency */ export declare class StreamProcessor<T> { private chunkSize; private processedCount; constructor(chunkSize?: number); /** * Process large array in memory-efficient chunks */ processInChunks<R>(items: T[], processor: (chunk: T[]) => Promise<R[]>, onProgress?: (processed: number, total: number) => void): Promise<R[]>; /** * Process items one by one with memory cleanup */ processSequentially<R>(items: T[], processor: (item: T, index: number) => Promise<R>, onProgress?: (processed: number, total: number) => void): Promise<R[]>; } /** * Memory-efficient data buffer with automatic flushing */ export declare class DataBuffer<T> { private buffer; private maxSize; private flushCallback; constructor(maxSize: number, flushCallback: (data: T[]) => Promise<void>); /** * Add item to buffer, auto-flush when full */ add(item: T): Promise<void>; /** * Manually flush buffer contents */ flush(): Promise<void>; /** * Get current buffer size */ size(): number; }