autopv-cli
Version:
AutoPrivacy DSAR evidence-pack generator - Automated GDPR compliance for SaaS companies
88 lines (87 loc) • 2.42 kB
TypeScript
/**
* 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;
}