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