Tinybench - हल्का JavaScript बेंचमार्किंग लाइब्रेरी
(github.com/tinylibs)- कोड के परफॉर्मेंस को सटीकता से मापने के लिए बनाया गया 10KB से छोटे आकार का अल्ट्रा-लाइट JavaScript बेन्चमार्किंग टूल
- Web API आधारित तरीके से काम करता है और
process.hrtimeयाperformance.nowका उपयोग करके सटीक टाइमिंग मापन का समर्थन देता है - Node.js, Deno, Bun आदि कई JavaScript रनटाइम वातावरणों में चलाया जा सकता है
- सांख्यिकीय विश्लेषण फीचर उपलब्ध: औसत, मानक विचलन, त्रुटि सीमा, वैरियंस, पर्सेंटाइल आदि से latency (विलंब) और throughput (थ्रूपुट) की गणना का समर्थन
- Concurrency रन मोड:
taskयाbenchस्तर पर समानांतर रन संभव,thresholdविकल्प से अधिकतम समानांतर रन की संख्या नियंत्रित - इवेंट-आधारित संरचना होने के कारण एक्सटेंड करने योग्य:
BenchऔरTaskक्लासें EventTarget को विरासत में लेती हैं, औरcycle,abortजैसे इवेंट लिसनर जोड़ने की सुविधा देती हैं - Async function का automatic detection:
AsyncFunctionयाPromiseरिटर्न होता है या नहीं, इसकी जाँच कर स्वतः async mode सेट होता है - परिणाम दृश्यांकन और रूपांतरण:
bench.table()method सेconsole.table()आउटपुट फॉर्मेट बदल सकता है, और custom Converter function से आउटपुट फ़ॉर्मेट को कस्टमाइज़ किया जा सकता है - जब
retainSamplesसेट किया जाता है, तो raw sample data जस का तस रखा जाता है और इसका उपयोग custom analysis, graph visualization और परिणाम export में किया जा सकता है - सटीक टाइमस्टैम्प provider चुनना संभव
- डिफ़ॉल्ट
performance.now() - रनटाइम-विशिष्ट ऑप्टिमाइज़ेशन विकल्प जैसे
hrtimeNow,bunNanoseconds,auto - कस्टम TimestampProvider interface लागू करने का विकल्प
- डिफ़ॉल्ट
- AbortSignal आधारित abort control का समर्थन
- पूरा बेंच या अलग-अलग टास्क इकाइयों के स्तर पर रन को बीच में रोकना संभव
- रोकने पर
abortइवेंट फायर होता है और स्टेटस फ्लैग (task.result.aborted) सेट होता है
- बिना किसी बाहरी लाइब्रेरी dependency के single package design से तेज़ initialization और execution speed सुनिश्चित होती है
- Benchmark.js, mitata, tatami-ng, Bema की तुलना में इसका डिज़ाइन छोटा, सरल और Web API-फ्रेंडली है
1 टिप्पणियां
अब लगता है कि क्या सच में ऐसी चीज़ की ज़रूरत है। AI वैसे भी उस समय और संदर्भ के मुताबिक performance measurement के लिए स्क्रिप्ट काफ़ी अच्छी तरह लिख देता है..