jvm client模式 于 server模式

http://ryxxlong.iteye.com/blog/1696537

JVM client模式与server模式

 下面整理一下对JVM client 和server 的一点点了解:

  1.虚拟机版本与模式查看 

java -version //查看JVM默认的环境   
java -client -version //查看JVM的客户端环境,针对GUI优化,启动速度快,运行速度不如server   
java -server -version //查看JVM的服务器端环境,针对生产环境优化,运行速度快,启动速度慢   

    使用各命令查看时的情况,如下图所示:

jvm client模式 于 server模式

2、虚拟机模式切换 

  目录JAVA_HOME/jre/bin下,会有2个目录,server与client.这个就是他们的运行环境的动态库.如我的机器就是:C:\Java\jdk1.6.0_17\jre\bin.找到JAVA_HOME/jre/lib/i386/jvm.cfg(我的机器是C:\Java\jdk1.6.0_17\jre\lib/i386/jvm.cfg)这就是JVM默认的查找顺序,内容如下 

-client KNOWN   
-server KNOWN   
-hotspot ALIASED_TO -client   
-classic WARN   
-native ERROR   
-green ERROR   
 默认启动的时候是使用第一行的启动,或者你可以加参数 java -client className 进行启动,来定制自己时使用clent还是server。你可以在命令行中直接输入java或java -help命令,你会看到如下的内容:

jvm client模式 于 server模式
    
     这时你只需要把-server和-clent换个位置就行了.就可以切换他们的启动顺序,如下所示:  
-server KNOWN   
-client KNOWN   
-hotspot ALIASED_TO -client   
-classic WARN   
-native ERROR   
-green ERROR   
  这个时候再输入java -version,可以看到是默认的使用服务器端了。

jvm client模式 于 server模式
 

3.虚拟机模式的区别:

一般开发工具中使用的是client,针对不同的服务器使用的不同,

jvm server比jvm client 更优化,

jvm server 启动较慢但启动后运行速度较快。jvm client  启动较快。

jvm client 中能运行的可能在jvm server中运行出错 ,所以这样的话最好在开发、测试阶段都使用jvm server ,保持和服务器相同。不过一直用client,也没出现过什么问题,服务器端用的是server的。可能这种高技术含量的bug相当不容易出现了。

       JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。JVM如果不显式指定是-Server模式还是-client模式。