← Neueste Arbeiten
💻 computer science

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

Dieses Paper stellt JETO-Mine vor, ein neuartiges konfigurierbares Werkzeug zur Generierung reproduzierbarer Benchmarks für Patches zur Verbesserung der Ausführungszeit in Java, welches zur Erstellung von JETO-Bench – einem Datensatz aus 660 identifizierten Patches aus 174 Repositories – verwendet wurde, und demonstriert, dass aktuelle Coding-Agenten wie OpenHands eine Erfolgsquote von 14,3 % bei diesen Aufgaben erreichen, während es gleichzeitig einen signifikanten Mangel an leistungsbezogenen Tests in Open-Source-Projekten hervorhebt.

Ursprüngliche Autoren: Khashayar Etemadi, Zhendong Su

Veröffentlicht 2026-07-01
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Khashayar Etemadi, Zhendong Su

Originalarbeit unter CC0 1.0 der Gemeinfreiheit gewidmet (http://creativecommons.org/publicdomain/zero/1.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich vor, Sie besitzen eine riesige Bibliothek von Software-Code, der in Java, einer populären Programmiersprache, geschrieben ist. Seit Jahren versuchen Forscher, „Roboter-Mechaniker“ (KI-Agenten) zu bauen, die automatisch Fehler in diesem Code finden und beheben können. Die meisten dieser Roboter wurden jedoch darauf trainiert, funktionale Bugs zu beheben – Fehler, bei denen die Software abstürzt oder ein falsches Ergebnis liefert (wie ein Taschenrechner, der 2+2=5 anzeigt).

Was ist mit Performance-Bugs? Das sind Fehler, bei denen die Software zwar korrekt arbeitet, aber unglaublich langsam ist, wie etwa ein Automotor, der zwar einwandfrei läuft, aber nur sehr mühsam und langsam eine Geschwindigkeit von 60 mph erreicht. Bis jetzt war es sehr schwierig zu testen, ob unsere Roboter-Mechaniker solche „langsamen“ Probleme beheben können, insbesondere in Java.

Hier ist eine einfache Aufschlüsselung dessen, was diese Arbeit vorstellt:

1. Das Problem: Die „Volatilität“ von Java

Das Beheben von Geschwindigkeitsproblemen in Java ist wie der Versuch, einen Läufer auf einer Laufbahn zu stoppen, deren Oberfläche sich alle paar Sekunden verändert.

  • Die Herausforderung: Java besitzt eine spezielle „Engine“ (die JVM), die schneller wird, je mehr man sie nutzt (Just-In-Time-Kompilierung), und die gelegentlich den Arbeitsbereich aufräumt (Garbage Collection). Dies macht die Messung der Geschwindigkeit sehr schwierig. Ein Test könnte nur deshalb langsam erscheinen, weil der Computer gerade noch „aufwärmte“, nicht weil der Code schlecht ist.
  • Die Lücke: Bestehende Benchmarks (Testsets) für das Beheben von Geschwindigkeitsfragen existieren hauptsächlich für andere Sprachen wie Python oder C++. Java fehlte ein fairer, zuverlässiger Testsatz.

2. Die Lösung: JETO-Mine (Der „Goldgräber“)

Die Autoren haben ein Werkzeug namens JETO-Mine entwickelt. Betrachten Sie dies als eine hochtechnologische Goldwaschmaschine für Software-Code.

  • Phase 1: Die Suche (Statische Analyse): Die Maschine scannt Millionen von Commits (Änderungen) auf GitHub. Sie nutzt eine intelligente KI (ein LLM), um die „Notizen“ zu lesen, die Entwickler hinterlassen haben, wenn sie Änderungen vorgenommen haben, und sucht nach Hinweisen wie: „Ich habe dies schneller gemacht.“
  • Phase 2: Das Labor (Dynamische Analyse): Dies ist der wichtigste Teil. Sobald eine potenzielle „Geschwindigkeitsverbesserung“ gefunden wurde, platzt JETO-Mine den Code in einen Docker-Container. Stellen Sie sich dies als ein versiegeltes, identisches Labor für jeden einzelnen Test vor.
    • Es führt den Code 30 Mal aus, um einen Durchschnitt zu ermitteln.
    • Es verwendet strenge Mathematik (statistische Tests), um zu beweisen, dass die Beschleunigung echt ist und nicht nur ein Zufallsprodukt durch das zufällige Rauschen des Computers.
    • Es stellt sicher, dass die Versionen „vorher“ und „nachher“ in exakt derselben Umgebung laufen, damit der Vergleich fair ist.
  • Phase 3: Der Richter (Evaluation Harness): Dies ist ein Schiedsrichter, der prüft, ob die Korrektur eines Roboter-Mechanikers tatsächlich funktioniert. Er führt den neuen Code aus, prüft, ob er weiterhin alle ursprünglichen Tests besteht, und misst, ob er tatsächlich schneller ist.

3. Das Ergebnis: JETO-Bench (Die „Schatzkiste“)

Unter Verwendung von JETO-Mine haben die Forscher JETO-Bench erschaffen.

  • Sie haben 11 Jahre Geschichte und fast 1,8 Millionen Codeänderungen durchforstet.
  • Sie fanden 660 potenzielle Geschwindigkeitsverbesserungen.
  • Nach strengen Tests haben sie 91 dieser Verbesserungen als „Goldstandard“-Fixes verifiziert, die garantiert laufen und reproduzierbar sind.
  • Wichtige Entdeckung: Sie fanden heraus, dass die meisten Open-Source-Java-Projekte keine Tests besitzen, die belegen, dass ein Stück Code schneller ist. Es ist, als hätte man einen Rennwagen, aber keinen Stoppuhr, um zu beweisen, dass er schnell ist. Dies ist eine riesige Lücke in der Art und Weise, wie Software derzeit getestet wird.

4. Die Testfahrt: Kann KI diese Bugs beheben?

Um zu sehen, ob JETO-Bench nützlich ist, nahmen die Forscher einen führenden KI-Coding-Agenten namens OpenHands und baten ihn, diese 91 Geschwindigkeitsprobleme zu beheben.

  • Die Punktzahl: OpenHands hat 14,3 % der Probleme erfolgreich behoben.
  • Die Bedeutung: Dieses Ergebnis ähnelt den Ergebnissen anderer Studien für Python und C++. Es zeigt, dass die KI zwar besser wird, das Beheben von „langsamem“ Code aber immer noch sehr schwierig ist.
  • Der Bonus: Der „Richter“ (Evaluation Harness) hat fast alle falschen Korrekturen automatisch erkannt. Wenn die KI versuchte, den falschen Teil des Codes zu ändern oder den Build unterbrach, erkannte das System dies sofort.

5. Warum das wichtig ist

  • Reproduzierbarkeit: Vor diesem Projekt mussten Sie, wenn Sie ein neues Tool zur Geschwindigkeitsoptimierung testen wollten, darauf hoffen, dass der ursprüngliche Code Jahre später noch funktioniert. JETO-Bench bietet eine versiegelte Zeitkapsel-Umgebung (Docker), sodass jeder heute exakt denselben Test mit demselben Ergebnis durchführen kann.
  • Eine neue Herausforderung: Das Paper hebt hervor, dass wir neue Wege erfinden müssen, um Tests zu schreiben, die Geschwindigkeit messen, nicht nur Korrektheit.
  • Noch kein Allheilmittel: Die Studie bestätigt, dass selbst fortgeschrittene KI-Agenten Schwierigkeiten mit der Performance-Optimierung haben, was darauf hindeutet, dass dies ein Forschungsfeld ist, das mehr Aufmerksamkeit benötigt.

Zusammenfassend lässt sich sagen: Die Autoren haben eine Maschine (JETO-Mine) gebaut, die echte Beispiele dafür findet und verifiziert, wie Java-Code schneller wird. Sie haben diese Beispiele in einen Testsatz (JETO-Bench) verpackt und bewiesen, dass aktuelle KI-Roboter etwa 1 von 7 dieser Geschwindigkeitsprobleme lösen können, aber sie haben auch aufgezeigt, dass der Softwarewelt die Werkzeuge (Tests) fehlen, um Geschwindigkeitsverbesserungen überhaupt ordnungsgemäß zu messen.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →