A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 段波 黑马帝   /  2011-12-2 19:51  /  4544 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 段波 于 2011-12-3 19:07 编辑

在system类的实验中:
    Properties props=System.getProperties();
    for(Object obj:props.keySet()){
            String value=(String) props.get(obj);
            System.out.println(value);
     }
控制台会打印出现 Java HotSpot(TM) Client VM
       请教一下Client VM 和server VM 的区别?
    谢谢!

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

9 个回复

倒序浏览
在Sun的HotSpot VM里,client VM与server VM是共用一套解释器的,“照理说”无论是在client还是server模式,纯解释执行的性能应该是一样的。但实际上,解释器虽然是同一个,但它却可以根据启动参数的不同而变得不同。HotSpot VM的解释器是在启动的时候才动态生成的,其中好处之一就是它会根据启动参数来生成最小量必要的代码(理论上…)。这样生成出来的解释器就可以在当时的环境中最合适。
在client模式中,VM参数ProfileInterpreter默认是false,而在server模式中这个参数默认为true。
client模式默认是用UseSerialGC,是单线程串行执行的;而server模式默认是用UseParallelGC,是多线程并行执行的,所以server模式的会快一些(按单位回收的空间大小来算,不要按单次停机时间来算因为堆大小可能不同)。另外堆大小的默认选择也不同,server模式默认会用更大的GC堆,所以GC次数会比较少。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
JVM运行模式分server和client2种

他们对字节码优化的策略不同:  
Client主要优化对用户交互的响应速度,Client Mode的装载速度和消耗内存方面都是比较有优势,Server主要优化后台运行的代码。

使用server模式可以提高性能,启动比client模式慢,长期运行则比client模式快。当该参数不指定时,虚拟机启动检测主机是否为服务器,如果是则以server模式启动,否则以client模式启动。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报 1 0
晕!!!!!!!!
回复 使用道具 举报
刚才也在疑问这个问题  查了些资料有个解释不错   主要区别就是client和server模式 在启动时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默认工作在什么模式。(-Xmx是java的一个选项,用来设置你的应用程序能够使用的最大内存数)(Xms是另一个设置内存的参数,用它来设置程序初始化的时候内存栈的大小,增加这个值的话你的程序的启动性能会得到提高。不过同样有前面的限制,以及受到xmx的限制。)

回复 使用道具 举报
赞.........
回复 使用道具 举报
高哲 中级黑马 2014-6-12 10:27:07
7#
学习了一下
回复 使用道具 举报
额,看来要学的还有很多~
回复 使用道具 举报
答案都已经给出了
回复 使用道具 举报
ffx 中级黑马 2016-4-30 15:37:08
10#
哈sssssssssssssssssssssssssssssssssssss
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马