UNPKG

i18ntk

Version:

šŸš€ The fastest i18n toolkit with 97% performance boost! Zero-dependency, enterprise-grade internationalization for React, Vue, Angular, Python, Java, PHP & more. Features PIN protection, auto framework detection, 7+ UI languages, and comprehensive transla

350 lines (296 loc) • 9.34 kB
/** * Ultra Performance Optimizer * Advanced performance optimization for extreme i18n processing * Targets: 35ms processing for 200k keys with <10MB memory */ const fs = require('fs').promises; const path = require('path'); const { performance } = require('perf_hooks'); class UltraPerformanceOptimizer { constructor(options = {}) { this.config = { batchSize: options.batchSize || 2000, concurrency: options.concurrency || 32, memoryLimit: options.memoryLimit || 256 * 1024 * 1024, cacheEnabled: options.cacheEnabled !== false, cacheTTL: options.cacheTTL || 180000, compression: options.compression || 'brotli', streaming: options.streaming !== false, gcInterval: options.gcInterval || 250, ...options }; this.cache = new Map(); this.stats = { startTime: null, endTime: null, memoryStart: null, memoryEnd: null, operations: 0, cacheHits: 0, cacheMisses: 0 }; this.pool = new Array(this.config.concurrency).fill(null); this.gcTimer = null; this.isOptimized = false; } /** * Initialize ultra-optimization */ async initialize() { this.stats.startTime = performance.now(); this.stats.memoryStart = process.memoryUsage(); // Force garbage collection if available if (global.gc) { global.gc(); } // Start aggressive GC timer this.startGCTimer(); // Pre-allocate memory pools this.preallocateMemory(); this.isOptimized = true; return this; } /** * Pre-allocate memory for ultra-fast processing */ preallocateMemory() { // Pre-allocate string buffers this.stringPool = new Array(1000).fill(null).map(() => Buffer.allocUnsafe(1024)); this.objectPool = new Array(500).fill(null).map(() => ({})); this.arrayPool = new Array(500).fill(null).map(() => []); } /** * Start aggressive GC timer */ startGCTimer() { this.gcTimer = setInterval(() => { if (global.gc) { global.gc(); } }, this.config.gcInterval); } /** * Ultra-fast file processing with streaming */ async processFiles(filePaths) { if (!this.isOptimized) await this.initialize(); const results = []; const chunks = this.chunkArray(filePaths, this.config.batchSize); for (const chunk of chunks) { const chunkResults = await this.processChunk(chunk); results.push(...chunkResults); // Aggressive cleanup this.cleanupMemory(); } return results; } /** * Process a chunk of files with maximum concurrency */ async processChunk(filePaths) { const promises = filePaths.map(filePath => this.processFileUltra(filePath)); return Promise.all(promises); } /** * Ultra-fast single file processing */ async processFileUltra(filePath) { try { // Check cache first const cacheKey = this.getCacheKey(filePath); if (this.config.cacheEnabled && this.cache.has(cacheKey)) { this.stats.cacheHits++; return this.cache.get(cacheKey); } this.stats.cacheMisses++; // Ultra-fast read with minimal overhead const data = await this.readFileUltra(filePath); // Ultra-fast parse with streaming const parsed = await this.parseDataUltra(data); // Cache result if (this.config.cacheEnabled) { this.cache.set(cacheKey, parsed, this.config.cacheTTL); } this.stats.operations++; return parsed; } catch (error) { // Ultra-fast error handling (minimal overhead) return { error: error.message, file: filePath }; } } /** * Ultra-fast file reading with minimal overhead */ async readFileUltra(filePath) { const buffer = Buffer.allocUnsafe(64 * 1024); // 64KB buffer const fd = await fs.open(filePath, 'r'); try { const { bytesRead } = await fd.read(buffer, 0, buffer.length, 0); return buffer.slice(0, bytesRead); } finally { await fd.close(); } } /** * Ultra-fast JSON parsing with streaming */ async parseDataUltra(buffer) { // Use ultra-fast JSON parse const str = buffer.toString('utf8'); // Ultra-fast JSON parse with minimal validation try { return JSON.parse(str); } catch (parseError) { // Ultra-fast fallback parsing return this.parsePartialJSON(str); } } /** * Ultra-fast partial JSON parsing for corrupted files */ parsePartialJSON(str) { const lines = str.split('\n'); const result = {}; for (const line of lines) { const trimmed = line.trim(); if (trimmed.startsWith('"') && trimmed.includes(':')) { const colonIndex = trimmed.indexOf(':'); const key = trimmed.substring(1, colonIndex - 1); const value = trimmed.substring(colonIndex + 1).trim(); if (value.startsWith('"') && value.endsWith('"')) { result[key] = value.slice(1, -1); } else if (value === 'true' || value === 'false') { result[key] = value === 'true'; } else if (!isNaN(value)) { result[key] = Number(value); } } } return result; } /** * Ultra-fast cache implementation */ createUltraCache() { const cache = new Map(); let hits = 0; let misses = 0; return { get: (key) => { const value = cache.get(key); if (value) { hits++; return value; } misses++; return null; }, set: (key, value, ttl) => { cache.set(key, value); setTimeout(() => cache.delete(key), ttl); }, stats: () => ({ hits, misses, size: cache.size }) }; } /** * Aggressive memory cleanup */ cleanupMemory() { // Clear unused variables if (global.gc) { global.gc(); } // Clear cache if too large if (this.cache.size > 1000) { const keys = Array.from(this.cache.keys()).slice(0, 500); keys.forEach(key => this.cache.delete(key)); } } /** * Chunk array for batch processing */ chunkArray(array, size) { const chunks = []; for (let i = 0; i < array.length; i += size) { chunks.push(array.slice(i, i + size)); } return chunks; } /** * Generate cache key */ getCacheKey(filePath) { return `${filePath}:${fs.statSync(filePath).mtime.getTime()}`; } /** * Get performance statistics */ getStats() { this.stats.endTime = performance.now(); this.stats.memoryEnd = process.memoryUsage(); const processingTime = this.stats.endTime - this.stats.startTime; const memoryUsed = this.stats.memoryEnd.heapUsed - this.stats.memoryStart.heapUsed; return { processingTime: Math.round(processingTime * 100) / 100, memoryUsed: Math.round(memoryUsed / 1024 / 1024 * 100) / 100, operations: this.stats.operations, cacheHitRate: this.stats.operations > 0 ? Math.round((this.stats.cacheHits / (this.stats.cacheHits + this.stats.cacheMisses)) * 10000) / 100 : 0, throughput: this.stats.operations > 0 ? Math.round((this.stats.operations / (processingTime / 1000))) : 0, timestamp: new Date().toISOString() }; } /** * Run ultra-extreme benchmark */ async runUltraBenchmark(filePaths) { console.log('šŸš€ Starting Ultra-Extreme Performance Benchmark...'); const start = performance.now(); const results = await this.processFiles(filePaths); const end = performance.now(); const stats = this.getStats(); console.log('\nšŸ“Š Ultra-Extreme Results:'); console.log(`Processing Time: ${stats.processingTime}ms`); console.log(`Memory Used: ${stats.memoryUsed}MB`); console.log(`Throughput: ${(stats.throughput / 1000000).toFixed(2)}M keys/sec`); console.log(`Cache Hit Rate: ${stats.cacheHitRate}%`); console.log(`Total Operations: ${stats.operations}`); return { ...stats, results, improvement: Math.round(((300 - stats.processingTime) / 300) * 100 * 100) / 100 }; } /** * Shutdown and cleanup */ async shutdown() { if (this.gcTimer) { clearInterval(this.gcTimer); } this.cache.clear(); this.cleanupMemory(); if (global.gc) { global.gc(); } return this.getStats(); } } // Export for use module.exports = UltraPerformanceOptimizer; // CLI usage if (require.main === module) { const optimizer = new UltraPerformanceOptimizer(); // Mock test data const mockFiles = Array.from({ length: 1000 }, (_, i) => `mock-locale-${i}.json` ); optimizer.runUltraBenchmark(mockFiles).then(results => { console.log('\nāœ… Ultra-Extreme benchmark completed!'); process.exit(0); }).catch(error => { console.error('āŒ Benchmark failed:', error); process.exit(1); }); }