UNPKG

datapilot-cli

Version:

Enterprise-grade streaming multi-format data analysis with comprehensive statistical insights and intelligent relationship detection - supports CSV, JSON, Excel, TSV, Parquet - memory-efficient, cross-platform

136 lines 3.55 kB
/** * Memory Optimizer * Advanced memory management for streaming data analysis */ import { EventEmitter } from 'events'; export interface MemoryOptimizationOptions { maxMemoryMB?: number; gcThresholdMB?: number; memoryCheckInterval?: number; enableMemoryPooling?: boolean; bufferPoolSize?: number; adaptiveChunkSizing?: boolean; memoryPressureThreshold?: number; } export interface MemoryStats { heapUsed: number; heapTotal: number; external: number; rss: number; arrayBuffers: number; } export interface ChunkSizeRecommendation { recommendedSize: number; reason: string; memoryPressure: number; adaptationFactor: number; } /** * Advanced memory optimizer with adaptive streaming */ export declare class MemoryOptimizer extends EventEmitter { private options; private bufferPool; private memoryCheckTimer?; private memoryHistory; private isMonitoring; private lastGcTime; private baselineMemory; constructor(options?: MemoryOptimizationOptions); /** * Start memory monitoring */ startMonitoring(): void; /** * Stop memory monitoring */ stopMonitoring(): void; /** * Get current memory statistics */ getCurrentMemoryStats(): MemoryStats; /** * Calculate memory pressure (0-1 scale) */ getMemoryPressure(): number; /** * Get adaptive chunk size recommendation */ getAdaptiveChunkSize(baseChunkSize: number, dataComplexity?: number): ChunkSizeRecommendation; /** * Get or create buffer with memory pooling */ getBuffer(size: number): Buffer; /** * Return buffer to pool */ returnBuffer(buffer: Buffer): void; /** * Force garbage collection if possible and beneficial */ forceGarbageCollection(): boolean; /** * Check memory usage and take action if needed */ private checkMemoryUsage; /** * Calculate memory usage trend (MB per second) */ private calculateMemoryTrend; /** * Get comprehensive memory statistics */ getDetailedStats(): { current: MemoryStats; baseline: MemoryStats; memoryGrowth: { heapUsed: number; heapTotal: number; rss: number; }; pressure: { level: number; threshold: number; status: string; }; trend: { mbPerSecond: number; direction: string; }; bufferPool: { totalBuffersCreated: number; totalBuffersReused: number; reuseRate: string; buffersInPool: number; poolSizes: { [k: string]: number; }; }; monitoring: { isActive: boolean; interval: number; historySize: number; }; }; /** * Clean up resources */ cleanup(): void; } /** * Get or create global memory optimizer */ export declare function getGlobalMemoryOptimizer(options?: MemoryOptimizationOptions): MemoryOptimizer; /** * Shutdown global memory optimizer */ export declare function shutdownGlobalMemoryOptimizer(): void; /** * Memory optimization decorator for async functions */ export declare function withMemoryOptimization<T extends (...args: any[]) => Promise<any>>(fn: T, options?: { enableGc?: boolean; bufferPooling?: boolean; memoryThreshold?: number; }): T; //# sourceMappingURL=memory-optimizer.d.ts.map