Kompilieren und Ausführen eines einfachen HelloWorld
dauert etwa 1 Sekunde in Java.Gibt es Java-Interpreter, die die Kompilierung umgehen?
$ time javac HelloWorld.java
real 0m0.659s
user 0m1.203s <-- 1.2s
sys 0m0.113s
Zum Vergleich kann Lua in etwa 0,002 Sekunden das gleiche tun.
In einigen (zugegebenermaßen ungewöhnlichen) Anwendungen werden Tausende von Java-Anwendungen mit kurzer Laufzeit dynamisch generiert, so dass 1 Sekunde in Stunden kompilieren übersetzt werden kann.
Ich frage mich, ob es Java-Interpreter gibt, die Kompilierung zu *.class
Dateien insgesamt umgehen?
(Ich weiß, dass es Groovy ist, aber es ist keine strenge Obermenge von Java)
Eine Sekunde scheint viel zu lang. Sie können den Java-Compiler als API innerhalb der JVM verwenden und Sie können die resultierende Klasse sofort in die laufende JVM laden. –
@MarkoTopolnik Ich sehe 0,7s Echtzeit und 1,2s Benutzerzeit (wegen Multithreading, vermutlich). Können Sie mit der Compiler-API deutlich darunter liegen? – MaxB
Was testen Sie? 'javac' an der Kommandozeile? Wenn ich innerhalb der JVM verwendet werde, denke ich, dass Sie ein stabiles "heißes" Setup haben können, in dem alles mit Ausnahme der Quelldatei geladen wird, die Sie kompilieren. Die Kompilierungszeit sollte in Millisekunden liegen. –