JVM Server与Client运行模式

JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.原因是:

当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器. C2比C1编译器编译的相对彻底,,服务起来之后,性能更高.

Java -version 可以直接查看出你使用的是client还是 server

Jvm client代码:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. C:\Documents and Settings\Administrator>java -version  
  2. java version "1.6.0_21"  
  3. Java(TM) SE Runtime Environment (build 1.6.0_21-b06)  
  4. Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)  

Jvm server代码:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [root@kaifa02 ~]# java -version  
  2. java version "1.6.0_06"  
  3. Java(TM) SE Runtime Environment (build 1.6.0_06-b02)  
  4. 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模式,  配置内容大致如下

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. -server KNOWN  
  2. -client KNOWN  
  3. -hotspot ALIASED_TO -client  
  4. -classic WARN  
  5. -native ERROR  
  6. -green ERROR  

一般只要变更 -server KNOWN 与 -client KNOWN 两个配置位置先后顺序即可,前提是JAVA_HOME/jre/bin 目录下同时存在 server 与client两个文件夹,分别对应着各自的jvm.

缺少其中一个,切换模式就会报错.类似下图:

猜你喜欢

转载自blog.csdn.net/suo082407128/article/details/71416461