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
TypeScript
/**
* メモリ最適化ユーティリティ
* 大容量データ処理時のメモリ効率を向上
*/
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