← Nieuwste papers
💻 computer science

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

Dit artikel introduceert JETO-Mine, een nieuwe configureerbare tool voor het genereren van reproduceerbare benchmarks van patches voor verbetering van de uitvoeringstijd in Java, die werd gebruikt om JETO-Bench te creëren—een dataset van 660 geïdentificeerde patches uit 174 repositories—en toonde aan dat huidige coding agents zoals OpenHands een succespercentage van 14,3% behalen op deze taken, terwijl het een aanzienlijk gebrek aan prestatiegerelateerde tests in open-source projecten benadrukt.

Oorspronkelijke auteurs: Khashayar Etemadi, Zhendong Su

Gepubliceerd 2026-07-01
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Khashayar Etemadi, Zhendong Su

Oorspronkelijk artikel vrijgegeven aan het publieke domein onder CC0 1.0 (http://creativecommons.org/publicdomain/zero/1.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je voor dat je een enorme bibliotheek hebt met softwarecode geschreven in Java, een populaire programmeertaal. Jarenlang hebben onderzoekers geprobeerd om "robotmechanici" (AI-agenten) te bouwen die automatisch bugs in deze code kunnen vinden en oplossen. Echter, de meeste van deze robots zijn alleen getraind om functionele bugs op te lossen — fouten waarbij de software crasht of het verkeerde antwoord geeft (zoals een rekenmachine die 2+2=5 zegt).

Wat betreft prestatiebugs? Dit zijn fouten waarbij de software correct werkt, maar ongelooflijk traag is, zoals een automotor die prima functioneert maar sputtert en er eeuwig over doet om 60 mph te bereiken. Tot nu toe was het erg moeilijk om te testen of onze robotmechanici deze "trage" problemen konden oplossen, vooral in Java.

Hier is een eenvoudige uitsplitsing van wat dit artikel introduceert:

1. Het Probleem: De "Volatiliteit" van Java

Het oplossen van snelheidsproblemen in Java is als het timen van een hardloper op een atletiekbaan die elke paar seconden van ondergrond verandert.

  • De Uitdaging: Java heeft een speciale "motor" (de JVM) die sneller wordt naarmate je hem meer gebruikt (Just-In-Time compilatie) en af en toe stopt om zijn werkplek op te ruimen (Garbage Collection). Dit maakt het meten van snelheid erg lastig. Een test kan traag lijken simpelweg omdat de computer aan het "opwarmen" was, niet omdat de code slecht is.
  • De Kloof: Bestaande benchmarks (testsets) voor het oplossen van snelheidsproblemen bestaan voornamelijk voor andere talen zoals Python of C++. Java mist een eerlijke, betrouwbare testset.

2. De Oplossing: JETO-Mine (De "Goudzoeker")

De auteurs hebben een tool gebouwd genaamd JETO-Mine. Zie dit als een hoogtechnologische goudzoekmachine voor softwarecode.

  • Fase 1: De Zoektocht (Statische Analyse): De machine scant miljoenen commits (wijzigingen) op GitHub. Het gebruikt een slimme AI (een LLM) om de "notities" te lezen die ontwikkelaars achterlieten bij wijzigingen, op zoek naar aanwijzingen die zeggen: "Ik heb dit sneller gemaakt."
  • Fase 2: Het Laboratorium (Dynamische Analyse): Dit is het belangrijkste deel. Zodra een potentiële "snelheidsfix" is gevonden, plaatst JETO-Mine de code in een Docker-container. Zie dit als een verzegeld, identiek laboratorium voor elke enkele test.
    • Het voert de code 30 keer uit om een gemiddelde te krijgen.
    • Het gebruikt strikte wiskunde (statistische toetsing) om te bewijzen dat de versnelling echt is en geen toevalstreffer door de willekeurige ruis van de computer.
    • Het zorgt ervoor dat de "voor"- en "na"-versies in exact dezelfde omgeving draaien, zodat de vergelijking eerlijk is.
  • Fase 3: De Rechter (Evaluatie Harness): Dit is een scheidsrechter die controleert of een fix van een robotmechanicus daadwerkelijk werkt. Het voert de nieuwe code uit, controleert of deze nog steeds alle oorspronkelijke tests doorstaat, en meet of deze echt sneller is.

3. Het Resultaat: JETO-Bench (De "Schatkist")

Met behulp van JETO-Mine hebben de onderzoekers JETO-Bench gecreëerd.

  • Ze hebben 11 jaar aan geschiedenis en bijna 1,8 miljoen code-wijzigingen doorzocht.
  • Ze vonden 660 potentiële snelheidsfixes.
  • Na rigoureuze tests hebben ze 91 hiervan geverifieerd als "gouden standaard" fixes die gegarandeerd werken en reproduceerbaar zijn.
  • Belangrijke Ontdekking: Ze ontdekten dat de meeste open-source Java-projecten geen tests hebben die bewijzen dat een stuk code sneller is. Het is alsof je een racewagen hebt, maar geen stopwatch om te bewijzen dat hij snel is. Dit is een enorme kloof in hoe software momenteel wordt getest.

4. De Proefrit: Kan AI deze bugs oplossen?

Om te zien of JETO-Bench nuttig is, hebben de onderzoekers een leidende AI-coderingsagent genaamd OpenHands gevraagd om deze 91 snelheidsproblemen op te lossen.

  • De Score: OpenHands loste 14,3% van de problemen succesvol op.
  • De Betekenis: Dit resultaat is vergelijkbaar met wat andere studies vonden voor Python en C++. Het laat zien dat hoewel AI beter wordt, het oplossen van "trage" code nog steeds erg moeilijk is.
  • De Bonus: De "Rechter" (evaluatie harness) heeft bijna alle foutieve fixes automatisch betrapt. Als de AI probeerde het verkeerde deel van de code te repareren of de build verbrak, wist het systeem dit onmiddellijk.

5. Waarom dit ertoe doet

  • Reproduceerbaarheid: Vóór dit moment moest je, als je een nieuwe tool voor het oplossen van snelheid wilde testen, hopen dat de originele code jaren later nog steeds werkte. JETO-Bench biedt een verzegelde, tijdscapsule-omgeving (Docker), zodat iedereen vandaag exact dezelfde test kan draaien en hetzelfde resultaat krijgt.
  • Een Nieuwe Uitdaging: Het artikel benadrukt dat we nieuwe manieren moeten uitvinden om tests te schrijven die snelheid meten, en niet alleen juistheid.
  • Nog Geen Wonderwapen: De studie bevestigt dat zelfs geavanceerde AI-agenten worstelen met prestatie-optimalisatie, wat suggereert dat dit een nieuw gebied is dat meer onderzoek vereist.

In een notendop: De auteurs hebben een machine gebouwd (JETO-Mine) om echte, werkende voorbeelden te vinden van Java-code die sneller wordt. Ze hebben deze voorbeelden verpakt in een testset (JETO-Bench) en bewezen dat huidige AI-robots ongeveer 1 op de 7 van deze snelheidsproblemen kunnen oplossen, maar ze hebben ook onthuld dat de softwarewereld de instrumenten (tests) mist om snelheidswinsten überhaupt goed te meten.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →