UNPKG

dnsweeper

Version:

Advanced CLI tool for DNS record risk analysis and cleanup. Features CSV import for Cloudflare/Route53, automated risk assessment, and parallel DNS validation.

81 lines 2.42 kB
/** * メモリ最適化ユーティリティ * 大容量データ処理時のメモリ効率を向上 */ export interface MemoryUsage { used: number; external: number; heapUsed: number; heapTotal: number; rss: number; } export interface StreamProcessorOptions { chunkSize: number; highWaterMark: number; objectMode: boolean; onMemoryWarning?: (usage: MemoryUsage) => void; memoryWarningThreshold?: number; } export declare class MemoryOptimizer { private static readonly DEFAULT_WARNING_THRESHOLD; /** * 現在のメモリ使用量を取得 */ static getMemoryUsage(): MemoryUsage; /** * メモリ使用量をログ出力 */ static logMemoryUsage(label?: string): void; /** * メモリ警告チェック */ static checkMemoryWarning(threshold?: number, onWarning?: (usage: MemoryUsage) => void): boolean; /** * ガベージコレクション強制実行 */ static forceGarbageCollection(): void; /** * メモリ効率的な配列チャンク処理 */ static processArrayInChunks<T, R>(array: T[], processor: (chunk: T[]) => Promise<R[]>, chunkSize?: number, onProgress?: (processed: number, total: number) => void): Promise<R[]>; /** * WeakMapベースのキャッシュ(メモリリーク防止) */ static createWeakCache<K extends object, V>(): WeakMap<K, V>; /** * LRUキャッシュの実装 */ static createLRUCache<K, V>(maxSize: number): LRUCache<K, V>; } /** * LRUキャッシュ実装 */ declare class LRUCache<K, V> { private cache; private maxSize; constructor(maxSize: number); get(key: K): V | undefined; set(key: K, value: V): void; delete(key: K): boolean; clear(): void; size(): number; has(key: K): boolean; } /** * ストリーミング処理用のメモリ効率的なプロセッサー */ export declare class StreamProcessor<T> { private options; private processedCount; constructor(options?: Partial<StreamProcessorOptions>); /** * ストリーミング処理 */ processStream<R>(items: AsyncIterable<T> | Iterable<T>, processor: (item: T) => Promise<R> | R): Promise<R[]>; private processChunk; private checkMemoryAndCleanup; getProcessedCount(): number; reset(): void; } export {}; //# sourceMappingURL=memory-optimizer.d.ts.map