JavaScript Benchmark
एक web worker में दो JavaScript फ़ंक्शन को साइड बाय साइड बेंचमार्क और तुलना करें।
इनपुट
आउटपुट
रीडमी
JavaScript benchmark क्या है?
एक JavaScript benchmark किसी कोड को बार-बार एक निश्चित समय अवधि में चलाकर और प्रति सेकंड कितने ऑपरेशन पूरे कर सकता है यह गिनकर कोड कितनी तेजी से निष्पादित होता है इसे मापता है। Benchmarking आमतौर पर एक ही समस्या के दो दृष्टिकोणों की तुलना करने के लिए उपयोग किया जाता है — उदाहरण के लिए, यह जांचना कि क्या Array.includes() किसी दिए गए उपयोग के लिए Array.indexOf() से तेज है। परिणाम ब्राउज़र और डिवाइस के बीच काफी भिन्न हो सकते हैं, क्योंकि प्रत्येक JavaScript engine (V8, SpiderMonkey, JavaScriptCore) के अपने अनुकूलन और JIT compilation रणनीतियां हैं।
Tool विवरण
यह tool आपको दो JavaScript कोड snippets को पेस्ट करने और सीधे अपने ब्राउज़र में head-to-head performance comparison चलाने देता है। प्रत्येक snippet को एक configurable अवधि के लिए समय दिया जाता है, और परिणाम दोनों functions के लिए प्रति सेकंड ऑपरेशन और प्रति ऑपरेशन औसत समय दिखाते हैं। एक progress bar सापेक्ष performance अंतर को हाइलाइट करता है, जिससे एक नज़र में यह देखना आसान हो जाता है कि कौन सा दृष्टिकोण तेज है।
विशेषताएं
- दोनों snippets को एक Web Worker में चलाता है ताकि benchmarks कभी भी ब्राउज़र tab को block या freeze न करें
- accuracy और wait time को संतुलित करने के लिए configurable benchmark अवधि
- visual bar और percentage अंतर के साथ side-by-side ops/sec comparison
यह कैसे काम करता है
प्रत्येक snippet को एक loop में wrap किया जाता है जो निर्दिष्ट अवधि (डिफ़ॉल्ट 2 सेकंड) के लिए 100 ms warmup phase के बाद चलता है ताकि JIT compiler कोड को अनुकूलित कर सके। Operations को timed window के दौरान गिना जाता है, और ops/sec की गणना count / elapsed_ms * 1000 के रूप में की जाती है। पूरा benchmark एक Web Worker के अंदर चलता है इसलिए यह DOM को access नहीं कर सकता, लेकिन इसके पास Math, Date, performance, arrays, और objects जैसे standard JavaScript globals तक access है।
सुझाव
- Snippets को self-contained रखें; ऐसे side effects से बचें जो iterations के बीच जमा होते हैं
- तेज operations पर अधिक स्थिर परिणामों के लिए एक लंबी अवधि (3–5 सेकंड) का उपयोग करें
- परिणाम आपके विशिष्ट ब्राउज़र और मशीन को प्रतिबिंबित करते हैं — हमेशा target environment पर benchmark करें