2011-07-22 64 views
5

可能重複:
How to speed up Java VM (JVM) startup time?如何讓JVM更快啓動?

我(在其他基於JVM的語言或可能)用Java編寫的命令行實用程序。問題是JVM啓動時間。例如,JVM的啓動速度比Python和Ruby慢。

如何讓JVM統計更快?我能否以某種方式「事先」(在Linux和Windows中)加載JVM,以便每次在命令行中運行我的實用程序時都不應該加載它?

+0

我很想知道如何做到這一點!我會說減肥你的依賴jar文件,但我希望有人可以幫助更多的知識。 –

+1

在我的機器上,「HelloWorld」程序需要40毫秒來加載/運行/完成。你需要多快? –

+1

@彼得,冷或熱的開始? –

回答

5

Nailgun可能是最好的解決方案 - 它讓一個正在運行的JVM實例然後可以通過你的命令(使用超輕量級的C客戶端)調用。

作爲一種替代方案或附加選項,如果您還沒有這樣做,則可能需要嘗試升級到Java 7 - 已經有相當多的啓動時間增強功能。

+0

我們在工作中使用Jruby,並且jvm的啓動時間和彈簧對象的加載是滯後的部分。我們最近切換到了客戶端服務器NailGun安裝程序,我們的速度提升了2倍。我們喜歡它! –

3

預先加載JVM您可以使用Drip。它保留了一個新的JVM,並保留了正確的類路徑和其他JVM選項,以便在需要時快速連接和使用它,然後將其丟棄。滴灌散列JVM選項並存儲有關如何以散列值作爲其名稱連接到目錄中的JVM的信息。

+0

謝謝....我有這個基本要求,然後我想要一個jvms池/一個新的一旦我與一個或最後一個連接(我必須配置和判斷策略),然後如果我使用多個jvm路由,我需要循環方式/選擇jvm的其他方式。有這樣的東西已經建立/延長「滴」。我將如何關閉jvm?任何更多資源? wiki很稀疏。 –

+0

我從sh腳本中得到了它們。 –