2016-09-08 1 views
3

Im Jahr 2012 a JEP 145 wurde für schnellen Jvm Startups um
Cache kompilierte native Code in Java erstellt.Was ist mit JEP 145 passiert (schnellerer jvm-Start wegen kompilierter Code-Wiederverwendung)?

Damals it had been officially announced.
jedoch die JEP 145 does not exist mehr.

Was ist damit passiert? Die Idee klingt großartig.
Ich konnte keine offizielle Erklärung finden, warum und wann dieses Projekt abgebrochen wurde.

+1

Sie sollten die OpenJDK-Community fragen. Es ist etwas abseits von Stack Overflow. – Andreas

+0

Die Idee klingt großartig, aber der Versuch, sie zu implementieren, hätte es anders bewiesen. Schließlich ist der potenzielle Gewinn ein Bruchteil des Nicht-I/O-Teils der Startzeit Ihrer Anwendung. Versuchen Sie, das zu messen, und beachten Sie dann, dass Sie die E/A-Zeit zum Laden des zwischengespeicherten Codes hinzufügen müssen. Ich wäre nicht überrascht, wenn sich herausstellen sollte, dass es sich nicht lohnt. Es könnte das andere Detail geben, dass der kompilierte Code, der für Codepfade erstellt wurde, die die Anwendung * nach dem Start genommen hat, nicht hilfreich ist, wenn die Anwendung sie * während des Starts * nicht benötigt. – Holger

+0

@Holger Einige (möglicherweise falsche) Gegenargumente: Der zwischengespeicherte Code kann in einem Stück ohne Suchvorgänge geladen werden. Es könnte möglich sein, es zu starten, bevor der Bytecode geladen wird. Der kompilierte Code, der für andere Codepfade erstellt wird, ist wahrscheinlich immer noch viel schneller als der interpretierte Code. Es sollte möglich sein, Code zu erstellen, der für den Start optimiert ist. +++ Aber du magst Recht haben. Ich denke jedoch, dass es funktionieren könnte, aber der begrenzte Gewinn und die typische Java-Nutzung machen es nicht die Mühe wert. – maaartinus

Antwort

1

Der Text der JEP ist noch verfügbar im JEP source repository:

http://hg.openjdk.java.net/jep/jeps/raw-file/c915dfb4117d/jep-145.md

Es ist kein dokumentiert Grund zu sein scheint für sie abgesagt werden. Aber wir wissen jetzt, dass AOT is in the works und es löst viele der gleichen Probleme, möglicherweise in einer Weise, die einfacher zu implementieren und zu warten ist. In der Tat sagt der AOT JEP:

Es ist möglich, dass das Speichern einer sehr späten Kopie der Low-Level-IR statt getan werden könnte, aber das scheint nicht weniger komplex.

Das scheint sicherlich eine Erklärung dafür zu sein, warum 145 nicht der richtige Weg ist.