jvm的client与server工作模式
【README】
JVM Server模式與client模式啟動,最主要的差別在于:
-Server模式啟動時,速度較慢,但是一旦運行起來后,性能將會有很大的提升.
原因是:當虛擬機運行在-client模式的時候,使用的是一個代號為C1的輕量級編譯器, 而-server模式啟動的虛擬機采用相對重量級,代號為C2的編譯器. C2比C1編譯器編譯的相對徹底,,服務起來之后,性能更高.
java -version 可以直接查看出你使用的是client還是 server ?
【1】client
C:\Documents and Settings\Administrator>java -version java version "1.6.0_21" Java(TM) SE Runtime Environment (build 1.6.0_21-b06) Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)【2】server
[root@kaifa02 ~]# java -version java version "1.6.0_06" Java(TM) SE Runtime Environment (build 1.6.0_06-b02) Java HotSpot(TM) Server VM (build 10.0-b22, mixed mode)兩種模式的切換可以通過更改配置(jvm.cfg配置文件)來實現:
32位的虛擬機在目錄JAVA_HOME/jre/lib/i386/jvm.cfg,
64位的在JAVA_HOME/jre/lib/amd64/jvm.cfg, 目前64位只支持server模式, 配置內容大致如下
當JVM用于啟動GUI界面的交互應用時適合于使用client模式,當JVM用于運行服務器后臺程序時建議用Server模式。
JVM在client模式默認-Xms是1M,-Xmx是64M;JVM在Server模式默認-Xms是128M,-Xmx是1024M。我們可以通過運行:java -version來查看jvm默認工作在什么模式。
【3】命令行
【3.1】-Xms
設置虛擬機可用內存堆的初始大小,缺省單位為字節,該大小為1024的整數倍并且要大于1MB,可用k(K)或m(M)為單位來設置較大的內存數。初始堆大小為2MB。
例如:-Xms6400K,-Xms256M
【3.2】-Xmx
設置虛擬機內存堆的最大可用大小,缺省單位為字節。該值必須為1024整數倍,并且要大于2MB。可用k(K)或m(M)為單位來設置較大的內存數。缺省堆最大值為64MB。
例如:-Xmx81920K,-Xmx80M
【3.3】-Xloggc:
將虛擬機每次垃圾回收的信息寫到日志文件中,文件名由file指定,文件格式是平文件,內容和-verbose:gc輸出內容相同。
【3.4】-client,-server
這兩個參數用于設置虛擬機使用何種運行模式,client模式啟動比較快,但運行時性能和內存管理效率不如server模式,通常用于客戶端應用程序。相反,server模式啟動比client慢,但可獲得更高的運行性能。
補充: 與client模式相比, server模式會做更多的編譯器優化,如指令重排序等;
?
小結:
在 windows上,缺省的虛擬機類型為client模式;
如果要使用server模式,就需要在啟動虛擬機時加-server參數,以獲得更高性能,對服務器端應用,推薦采用server模式,尤其是多個CPU的系統,已獲得更高性能。在Linux,Solaris上缺省采用server模式。
總結
以上是生活随笔為你收集整理的jvm的client与server工作模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站的二维码怎么变小(网站的二维码怎么变
- 下一篇: java异步线程内存可见性实验