JVM server 與client 運行模式
1.概述
JVM有兩種運行模式Server與Client。兩種模式的區別在於,Client模式啓動速度較快,Server模式啓動較慢;但是啓動進入穩定期長期運行之後Server模式的程序運行速度比Client要快很多。這是因爲Server模式啓動的JVM採用的是重量級的虛擬機,對程序採用了更多的優化;而Client模式啓動的JVM採用的是輕量級的虛擬機。所以Server啓動慢,但穩定後速度比Client遠遠要快。
2.怎麼判斷JVM是運行在Client模式還是Server模式
java -version 可以直接查看出你使用的是client還是 server
2.1 演示環境
windows 10 企業版 2016 長期服務版
JDK_1.8.0_171_x64
JDK_1.8.0_201_x32
2.2 Server 模式
C:\Users\Administrator>java -version
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
2.3 Client 模式
C:\Program Files (x86)\Java\jdk1.8.0_201\bin>java -version
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) Client VM (build 25.201-b09, mixed mode, sharing)
2.4 如何切換client與server模式
JVM啓動時採用哪種模式是在名爲jvm.cfg的配置文件中配置的。
1. 在32位JDK中,jvm.cfg位置爲:JAVA_HOME/jre/lib/i386/jvm.cfg;
2.在64位JDK中,jvm.cfg位置爲:JAVA_HOME/jre/lib/amd64/jvm.cfg。
jvm.cfg中配置:(此時爲client模式)
-client KNOWN
-server KNOWN
jvm.cfg中配置:(此時爲Server模式)
#-client KNOWN
-server KNOWN
3.注意事項
如果是64位的jdk,只能運行在Server模式下。