架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3313|回复: 5

[资料] Java的虚拟机JVM之server、client的区别

[复制链接]
发表于 2017-7-24 11:10:31 | 显示全部楼层 |阅读模式
summary about Java's two VM : Server & Client
d01373f082025aafd32b3eebffedab64034f1af0.jpg

--------------------------------------------------------------------from myself-----------------------------------------------------------------------
当前64位只支持server模式
Server VM启动比Client VM慢大概10%,运行比Client VM快至少有10倍
由于服务器的CPU、内存和硬盘都比客户端机器强大,所以程序部署后,都应该以server模式启动,获取较好的性能;
JVM在client模式默认-Xms是1M,-Xmx是64M;JVM在Server模式默认-Xms是128M,-Xmx是1024M;
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化;
关于GC:
clien模式下,新生代选择的是串行gc,旧生代选择的是串行gc
server模式下,新生代选择的是并行回收gc,旧生代选择的是并行gc
一般来说我们系统应用选择有两种方式:吞吐量优先和暂停时间优先,对于吞吐量优先的采用server默认的并行gc方式,对于暂停时间优先的选用并发gc(CMS)方式。


--------------------------------------------------------------------from browser-------------------------------------------------------------------------
JDK有两种VM,VM客户端,VM服务器应用程序。这两种解决方案分享java运行环境的热点代码库,但使用不同的编译器,适用于客户机和服务器的独特的性能特点,这些差异包括编写内联政策和堆的默认值。

虽然服务器和客户端虚拟机类似,服务器VM已专门调整最大峰值操作速度。它的目的是执行长时间运行的服务器应用程序,它需要最快的运行速度超过一个快速启动时间或较小的运行时内存占用。

客户VM编译器是经典的虚拟机和实时升级(JIT)通过JDK的先前版本使用的编译器。客户端虚拟机提供了改进的运行应用程序和小程序的性能。java虚拟机的热点客户已减少应用程序的启动时间和内存占用特别调整,使其特别适合客户环境。在一般情况下,客户端系统更好的图形用户界面。

因此,真正的区别也在编译器级别上:

客户端虚拟机编译器不尝试执行由编译器在服务器虚拟机上执行的更复杂的优化,但在交换过程中,它需要较少的时间来分析和编译一段代码。这意味着客户端虚拟机可以更快地启动,并需要一个较小的内存占用。

服务器虚拟机包含一个先进的自适应编译器支持许多C++编译器的优化进行优化,同样的类型,以及一些优化,不能用传统的编译器完成的,比如积极的内联在虚拟方法调用。这是一个竞争和性能优势,静态编译器。自适应优化技术在它的方法是非常灵活的,通常优于甚至先进的静态分析和编译技术。

-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升,原因是:当虚拟机在-Client模式的时候,使用的是一个代号为C1的轻量级编译器,而-Server模式启动的虚拟机采用相对重量级代号为C2的编译器,C2比C1编译器编译的相对彻底,服务起来之后,性能高。

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




上一篇:Could not reserve enough space for 2097152KB object heap
下一篇:VS2012 Nuget 安装 AutoMapper时报错的解决方法
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2017-8-14 16:52:24 | 显示全部楼层
JAVA Error occurred during initialization of VM 错误的解决方法
http://www.itsvse.com/thread-3972-1-1.html
(出处: 架构师)
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-10-21 15:34:08 | 显示全部楼层
只用过VMware
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-12-17 08:58:20 | 显示全部楼层
我要10积分
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-12-21 10:09:50 | 显示全部楼层
Java的虚拟机JVM之server、client的区别
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-3-8 20:37:43 | 显示全部楼层
我要10M
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2018-8-22 05:39

Powered by Discuz! X3.4

© 2001-2014 Comsenz Inc.

快速回复 返回顶部 返回列表