← नवीनतम पेपर
💻 computer science

JETO-Bench: A Reproducible Benchmark for Execution Time Improvement Patches in Java

यह शोध पत्र JETO-Mine को प्रस्तुत करता है, जो जावा में निष्पादन समय सुधार (execution time improvement) पैच के पुनरुत्पादक बेंचमार्क उत्पन्न करने के लिए एक नवीन कॉन्फ़िगर करने योग्य टूल है, जिसका उपयोग JETO-Bench बनाने के लिए किया गया था—जो 174 रिपॉजिटरी से पहचाने गए 660 पैच का एक डेटासेट है—और यह प्रदर्शित किया गया कि OpenHands जैसे वर्तमान कोडिंग एजेंट इन कार्यों पर 14.3% सफलता दर प्राप्त करते हैं और ओपन-सोर्स प्रोजेक्ट्स में प्रदर्शन-संबंधी परीक्षणों की महत्वपूर्ण कमी को उजागर करते हैं।

मूल लेखक: Khashayar Etemadi, Zhendong Su

प्रकाशित 2026-07-01
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Khashayar Etemadi, Zhendong Su

मूल पेपर CC0 1.0 (http://creativecommons.org/publicdomain/zero/1.0/) के तहत सार्वजनिक डोमेन को समर्पित है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आपके पास जावा (Java) में लिखे गए सॉफ़्टवेयर कोड का एक विशाल पुस्तकालय है, जो एक लोकप्रिय प्रोग्रामिंग भाषा है। वर्षों से, शोधकर्ता "रोबोट मैकेनिक" (AI एजेंट) बनाने की कोशिश कर रहे हैं जो इस कोड में अपने आप बग्स (गलतियाँ) ढूंढ सकें और उन्हें ठीक कर सकें। हालाँकि, अधिकांश रोबोटों को केवल फंक्शनल बग्स (functional bugs) को ठीक करने के लिए प्रशिक्षित किया गया है—ऐसी गलतियाँ जहाँ सॉफ़्टवेयर क्रैश हो जाता है या गलत उत्तर देता है (जैसे कैलकुलेटर का 2+2=5 कहना)।

लेकिन परफॉरमेंस बग्स (performance bugs) के बारे में क्या? ये वे गलतियाँ हैं जहाँ सॉफ़्टवेयर सही ढंग से काम तो करता है लेकिन अविश्वसनीय रूप से धीमा होता है, जैसे कि एक कार का इंजन जो ठीक तो चलता है लेकिन बहुत सुस्त है और 60 मील प्रति घंटे की रफ्तार पकड़ने में बहुत समय लेता है। अब तक, यह परीक्षण करना बहुत कठिन था कि हमारे रोबोट मैकेनिक इन "धीमे" (slow) समस्याओं को ठीक कर सकते हैं या नहीं, विशेष रूप से जावा में।

यहाँ इस पेपर का एक सरल विवरण दिया गया है:

1. समस्या: जावा की "अस्थिरता" (Volatility)

जावा में स्पीड संबंधी समस्याओं को ठीक करना एक ऐसे धावक को टाइम करने जैसा है जिसका ट्रैक हर कुछ सेकंड में अपना सतह बदल देता है।

  • चुनौती: जावा का एक विशेष "इंजन" (JVM) है जो इसका उपयोग करने पर और तेज़ होता जाता है (Just-In-Time compilation) और कभी-कभी अपने कार्यक्षेत्र को साफ करने के लिए रुक जाता है (Garbage Collection)। यह गति को मापना बहुत कठिन बना देता है। एक टेस्ट इसलिए धीमा लग सकता है क्योंकि कंप्यूटर अभी "वॉर्म-अप" हो रहा था, न कि इसलिए कि कोड खराब था।
  • अंतराल (Gap): मौजूदा बेंचमार्क (टेस्ट सेट) मुख्य रूप से पायथन (Python) या C++ जैसी अन्य भाषाओं के लिए मौजूद हैं। जावा में एक निष्पक्ष और विश्वसनीय टेस्ट सेट की कमी थी।

2. समाधान: JETO-Mine (द "गोल्ड माइनर")

लेखकों ने JETO-Mine नामक एक टूल बनाया है। इसे एक उच्च-तकनीकी सोने की खोज करने वाली मशीन (gold panning machine) के रूप में समझें।

  • चरण 1: खोज (Static Analysis): यह मशीन GitHub पर लाखों कमिट्स (बदलावों) को स्कैन करती है। यह एक स्मार्ट AI (LLM) का उपयोग करती है जो डेवलपर्स द्वारा छोड़े गए "नोट्स" को पढ़ती है, ताकि उन संकेतों को ढूँढा जा सके जो कहते हैं, "मैंने इसे तेज़ बनाया।"
  • चरण 2: लैब (Dynamic Analysis): यह सबसे महत्वपूर्ण हिस्सा है। एक बार जब एक संभावित "स्पीड फिक्स" मिल जाता है, तो JETO-Mine उस कोड को एक डॉकर कंटेनर (Docker container) में डाल देता है। इसे हर एक टेस्ट के लिए एक सीलबंद, समान प्रयोगशाला के रूप में समझें।
    • यह औसत निकालने के लिए कोड को 30 बार चलाता है।
    • यह साबित करने के लिए सख्त गणित (सांख्यिकीय परीक्षण) का उपयोग करता है कि स्पीड-अप वास्तविक है और केवल कंप्यूटर के रैंडम शोर (noise) के कारण नहीं हुआ है।
    • यह सुनिश्चित करता है कि "पहले" और "बाद" वाले संस्करण बिल्कुल एक ही वातावरण में चलें ताकि तुलना निष्पक्ष हो।
  • चरण 3: जज (Evaluation Harness): यह एक रेफरी है जो यह जाँचता है कि क्या किसी रोबोट मैकेनिक का सुधार वास्तव में काम करता है। यह नए कोड को चलाता है, यह देखता है कि क्या यह अभी भी सभी मूल परीक्षणों को पास करता है, और यह मापता है कि क्या यह वास्तव में तेज़ है।

3. परिणाम: JETO-Bench (द "ट्रेजर चेस्ट")

JETO-Mine का उपयोग करके, शोधकर्ताओं ने JETO-Bench बनाया।

  • उन्होंने 11 वर्षों के इतिहास और लगभग 1.8 मिलियन कोड बदलावों की गहराई से जांच की।
  • उन्हें 660 संभावित स्पीड फिक्स मिले।
  • कठोर परीक्षण के बाद, उन्होंने इनमें से 91 को "गोल्ड स्टैंडर्ड" फिक्स के रूप में सत्यापित किया जो गारंटी के साथ चलते हैं और जिन्हें दोबारा दोहराया (reproducible) जा सकता है।
  • मुख्य खोज: उन्होंने पाया कि अधिकांश ओपन-सोर्स जावा प्रोजेक्ट्स में ऐसे टेस्ट नहीं होते जो यह साबित करें कि कोड का एक हिस्सा तेज़ है। यह एक रेस कार होने के बावजूद स्टॉपवॉच न होने जैसा है जिससे यह साबित हो सके कि वह तेज़ है।

4. टेस्ट ड्राइव: क्या AI इन बग्स को ठीक कर सकता है?

यह देखने के लिए कि क्या JETO-Bench उपयोगी है, शोधकर्ताओं ने एक अग्रणी AI कोडिंग एजेंट, OpenHands, को इन 91 स्पीड समस्याओं को ठीक करने के लिए कहा।

  • स्कोर: OpenHands ने इन समस्याओं में से 14.3% को सफलतापूर्वक ठीक किया।
  • अर्थ: यह परिणाम पायथन और C++ के अन्य अध्ययनों के समान है। यह दर्शाता है कि भले ही AI बेहतर हो रहा है, लेकिन "धीमे" कोड को ठीक करना अभी भी बहुत कठिन है।
  • बोनस: "जज" (इवैल्यूएशन हार्नेस) ने लगभग सभी गलत सुधारों को पकड़ लिया। यदि AI ने कोड के गलत हिस्से को ठीक करने की कोशिश की या बिल्ड को तोड़ दिया, तो सिस्टम को तुरंत पता चल गया।

5. यह क्यों महत्वपूर्ण है

  • पुनरुत्पादकता (Reproducibility): इससे पहले, यदि आप एक नया स्पीड-फिक्सिंग टूल टेस्ट करना चाहते थे, तो आपको इस बात की उम्मीद करनी पड़ती थी कि मूल कोड वर्षों बाद भी काम कर रहा है। JETO-Bench एक सीलबंद, टाइम-कैप्सूल वातावरण (Docker) प्रदान करता है ताकि कोई भी आज वही सटीक टेस्ट चला सके और वही परिणाम प्राप्त कर सके।
  • एक नई चुनौती: यह पेपर इस बात पर ज़ोर देता है कि हमें गति मापने वाले टेस्ट लिखने के नए तरीके खोजने की आवश्यकता है, न कि केवल शुद्धता (correctness) को मापने की।
  • अभी कोई जादुई समाधान नहीं: यह अध्ययन पुष्टि करता है कि उन्नत AI एजेंट भी परफॉरमेंस ऑप्टिमाइज़ेशन में संघर्ष करते हैं, जो यह सुझाव देता है कि यह क्षेत्र और अधिक शोध की मांग करता है।

संक्षेप में: लेखकों ने एक मशीन (JETO-Mine) बनाई जो जावा कोड के तेज़ होने के वास्तविक उदाहरणों को खोजने और सत्यापित करने का काम करती है। उन्होंने इन उदाहरणों को एक टेस्ट सेट (JETO-Bench) में पैक किया और साबित किया कि वर्तमान AI रोबोट इन 91 स्पीड समस्याओं में से लगभग 7 में से 1 को ठीक कर सकते हैं, लेकिन उन्होंने यह भी उजागर किया कि सॉफ़्टवेयर की दुनिया में स्पीड सुधार को ठीक से मापने के लिए आवश्यक टूल्स (टेस्ट) की कमी है।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →