2011-04-13 60 views
3

我正在使用-server jvm選項測試我的tomcat服務器4。我的JDK在FreeBSD上是1.5。使用-server JVM選項運行tomcat

我沒有看到任何明顯的差異或任何問題。如果我要在我的產品系統上啓用此選項,我可以期待什麼樣的改進以及我應該注意哪些問題?

我已閱讀What's the effect of -server option for the HotSpot JVM?,但沒有詳細討論。

+0

建議:使用tomcat 6和JDK 6。 – 2011-04-13 04:44:37

+0

@Harry Joy - 我希望我可以:( – Nishan 2011-04-13 04:53:00

回答

3

很可能JVM已經在服務器模式下運行。對於Linux JDK 5/6時,JVM將默認爲服務器模式中的服務器級計算機上:

「[...]的服務器級計算機的定義是具有至少2個CPU和物理存儲器的至少2GB「。

這是記錄here(和here爲Java 6)。

這並不是說明FreeBsd上會發生什麼,但我希望FreeBsd JVM只是服務器模式,或者它們在服務器級機器上默認爲服務器模式,就像Linux一樣。

+0

我在JDK 1.5上http://www.oracle.com/technetwork/java/ergo5-140223.html說JVM默認情況下是服務器模式下的服務器類機器因爲1.5。所以我不需要明確地打開它我猜 – Nishan 2011-04-13 04:55:58

0

​​3210討論了區別。我們很少在我們的任何生產系統中使用默認參數(GC收集算法,堆大小等),所以它不會提供太多的提升。

在實現這個參數後沒有任何需要注意的具體事情,但是如果你看到-server和-client之間的區別,那麼JIT編譯器總是一個很好的開始。

2

現在的JVM可以「自動檢測」類似服務器的機器。因此,如果您未指定-server-client,則JVM1.5 +將選擇最佳方法 - 即使您不使用該屬性,它也可能會在服務器模式下運行。

在這種情況下,如果使用-client選項啓動JVM,您可能會注意到不同之處。

參考

1

該服務器模式所做的是第一差值接通並行GC,它是一種可以通過垃圾收集器,推薦用於多核機器。一般來說,它會縮短垃圾收集的時間。

其次,服務器模式將在JIT中使用更積極的優化。

我認爲服務器模式是生產機器上必須具備的模式。

我建議你切換到1.6 JVM,因爲它具有更好的gc實現並且更好的優化。

-2

由於垃圾收集和其他參數的不同,您會發現長期存在差異。

+0

呃......他沒有,那是他的問題。 – 2017-06-15 11:50:12