这里向你们描述一下JVM client模式和Server模式二者的区别和联系,JVM若是不显式指定是-Server模式仍是-client模式,JVM可以根据下列原则进行自动判断(适用于Java5版本或者Java以上版本)。java
JVM client模式和Server模式c++
JVM Server模式与client模式启动,最主要的差异在于:-Server模式启动时,速度较慢,可是一旦运行起来后,性能将会有很大的提高。JVM若是不显式指定是-Server模式仍是-client模式,JVM可以根据下列原则进行自动判断(适用于Java5版本或者Java以上版本)。服务器
前段时间有个同事给我发了个java跟c++性能比较的文章,其中有个对比图引发了个人兴趣,意外的是,我感兴趣的不是java和c++的对比,而是java -Server模式和java -client模式的对比。历来没想到二者间的性能有如此巨大的差异。而在后来本身的亲身测试中发现确实如此。jvm
下面是我看到的那个对比图:性能
图中最显著的就是JVM client模式和Server模式关于method call的对比,那个差异不是通常的大,在后来的测试中发现,相差至少有10倍。测试
下面是另外两个对比图:spa
JVM工做在Server模式能够大大提升性能,但应用的启动会比client模式慢大概10%。当该参数不指定时,虚拟机启动检测主机是否为服务器,若是是,则以Server模式启动,不然以client模式启动,J2SE5.0检测的根据是至少2个CPU和最低2GB内存。orm
当JVM用于启动GUI界面的交互应用时适合于使用client模式,当JVM用于运行服务器后台程序时建议用Server模式。
JVM在client模式默认-Xms是1M,-Xmx是64M;JVM在Server模式默认-Xms是128M,-Xmx是1024M。咱们能够经过运行:java -version来查看jvm默认工做在什么模式。htm