編譯和運行一個簡單的HelloWorld
需要約1秒的Java。是否有繞過編譯的Java解釋器?
$ time javac HelloWorld.java
real 0m0.659s
user 0m1.203s <-- 1.2s
sys 0m0.113s
爲了便於比較,Lua可以在大約0.002秒內完成相同操作。
在一些(誠然異常)的應用中,動態地生成的數以千計的短期運行的Java應用程序,以使得1秒可以轉化爲小時編譯的。
我不知道是否有Java解釋器完全繞過編譯到*.class
文件?
(我知道有Groovy的,但它不是Java的一個嚴格的超)
一秒鐘似乎太長。您可以將Java編譯器用作JVM中的API,並且可以立即將生成的類加載到正在運行的JVM中。 –
@MarkoTopolnik我看到0.7s的實時和1.2s的用戶時間(據推測,由於多線程)。你可以大大低於編譯器API的下面嗎? – MaxB
你在測試什麼? 'javac'在命令行?當在JVM中使用時,我認爲你可以有一個穩定的「熱」設置,除了你正在編譯的一個源文件之外,所有的東西都被加載。編譯時間應該在毫秒內。 –