JMH बेंचमार्क जोड़ना

JMH बेंचमार्क जोड़ना

LogoRRR को फिर से तेज़ बनाएं।

रिलीज़ 24.3.0 LogoRRR के कोडबेस में JMH बेंचमार्किंग सुविधाएं जोड़ता है।

JMH — Java Microbenchmark Harness — JVM परफ़ॉर्मेंस मापन के लिए मानक टूल है। LogoRRR बड़ी फ़ाइलों को प्रत्येक रन में लाखों बार अलग-अलग लॉग लाइनें प्रोसेस करके संभालता है, जिससे इसके कुछ आंतरिक लूप वास्तव में परफ़ॉर्मेंस-संवेदनशील हो जाते हैं। JMH ठीक इन्हीं हॉट पाथ के लिए पुनरुत्पादनयोग्य, भरोसेमंद संख्याएं देता है।

सेटअप

LogoRRR Scala में लिखा गया है लेकिन अपने बिल्ड टूल के रूप में Maven का उपयोग करता है — जो कुछ हद तक असामान्य है, लेकिन यहाँ अच्छी तरह काम करता है। मानक Maven आर्कीटाइप के ज़रिए JMH को बूटस्ट्रैप करना सीधा था। बेंचमार्क स्वयं Java में लिखे गए हैं, लेकिन Scala कोडबेस साफ़ एंट्री पॉइंट उजागर करता है जिन्हें बेंचमार्क सीधे कॉल कर सकते हैं।

परिणाम

इसमें जाने से पहले यह धारणा थी कि प्रति फ़ाइल-लोड बहुत बार कही जाने वाली एक विशेष फ़ंक्शन पहले से ही उचित रूप से तेज़ है। JMH ने उस धारणा को गलत साबित किया। मापन और पुनरावृत्ति के बाद, उस फ़ंक्शन का थ्रूपुट दोगुने से अधिक हो गया। इस तरह के परिणाम ही बेंचमार्क का उद्देश्य हैं: वे अनुमान की जगह डेटा रखते हैं।

LogoRRR इस काम से पहले भी बड़ी लॉग फ़ाइलों को संभालने में सक्षम था। इन सुधारों के साथ, यह उन्हें और तेज़ी से संभालता है — और भविष्य की रिलीज़ में रिग्रेशन पकड़ने के लिए बेंचमार्किंग इन्फ्रास्ट्रक्चर अब उपलब्ध है।

JMH जैसे टूल आपको दिखाएंगे कि वास्तव में क्या काम करता है, और पुनरुत्पादनयोग्य परिणाम प्रदान करते हैं।

हेडर फ़ोटो Nathan Salt द्वारा Pexels पर।