JVM client模式和Server模式的區別

jopen 10年前發布 | 15K 次閱讀 JVM Java開發

JVM Server模式與client模式啟動,最主要的差別在于:-Server模式啟動時,速度較慢,但是一旦運行起來后,性能將會有很大的提升。

這里向大家描述一下JVM client模式和Server模式兩者的區別和聯系,JVM如果不顯式指定是-Server模式還是-client模式,JVM能夠根據下列原則進行自動判斷(適用于Java5版本或者Java以上版本)。

JVM client模式和Server模式

JVM Server模式與client模式啟動,最主要的差別在于:-Server模式啟動時,速度較慢,但是一旦運行起來后,性能將會有很大的提升。JVM如 果不顯式指定是-Server模式還是-client模式,JVM能夠根據下列原則進行自動判斷(適用于Java5版本或者Java以上版本)。

前 段時間有個同事給我發了個java跟c++性能比較的文章,其中有個對比圖引起了我的興趣,意外的是,我感興趣的不是java和c++的對比,而是 java -Server模式和java -client模式的對比。從來沒想到兩者間的性能有如此巨大的差別。而在后來自己的親身測試中發現確實如此。

下面是我看到的那個對比圖:

JVM client模式和Server模式的區別

圖中最顯著的就是JVM client模式和Server模式關于method call的對比,那個差別不是一般的大,在后來的測試中發現,相差至少有10倍。

下面是另外兩個對比圖:

JVM client模式和Server模式的區別  JVM client模式和Server模式的區別

JVM 工作在Server模式可以大大提高性能,但應用的啟動會比client模式慢大概10%。當該參數不指定時,虛擬機啟動檢測主機是否為服務器,如果是, 則以Server模式啟動,否則以client模式啟動,J2SE5.0檢測的根據是至少2個CPU和最低2GB內存。

當JVM用于啟動GUI界面的交互應用時適合于使用client模式,當JVM用于運行服務器后臺程序時建議用Server模式。
JVM在client模式默認-Xms是1M,-Xmx是64M;JVM在Server模式默認-Xms是128M,-Xmx是1024M。我們可以通過運行:java -version來查看jvm默認工作在什么模式。

原文地址:http://developer.51cto.com/art/201009/228035.htm

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!