2009-09-22 60 views

回答

5

隨着-server JVM將編譯熱點(即,常常執行的代碼的部分)更積極,和作爲結果,編譯器會花費更多的時間這樣做。這不是一個問題,因爲當你的進程運行很長一段時間(例如在服務器上)時你只使用這個選項。

當使用-client時,所完成的優化更輕更快,因爲當運行客戶端應用程序時編譯器啓動時不需要長時間的停頓。

+1

因爲編譯器運行在不同的線程中,所以你並沒有真正得到暫停。開始編譯代碼和可用代碼之間有一段延遲。 Server HotSpot在編譯之前還默認等待更長時間(因爲編譯需要更長時間並使用更多內存)。 – 2009-09-22 12:02:05

0

在某些平臺上,-server標誌默認設置。

即,如果它的Linux/Solaris並具有超過2GB的內存和超過2個處理器。正如你所知道的那樣 - 這些需求很久以前就已經定義了。我現在有更好的筆記本電腦......!

我猜他們從來沒有將它設置爲Windows上的默認值,因爲他們認爲Windows將只運行客戶端Java和* nix將運行服務器Java。

直到最近我們在Windows服務器上運行了我們長時間運行的服務器進程,並且將該標誌轉變爲明顯的差異。

相關問題