jvm为什么要分代管理(为啥要对jvm做优化?)
摘要:在jvm中有很多的参数可以进行设置 ,这样可以让jvm在各种环境中都能够高效的运行 。绝大部分的参数保持默认即可 。
本文分享自华为云社区《为什么需要对jvm进行优化,jvm运行参数之标准参数》 ,作者:共饮一杯无 。
我们为什么要对jvm做优化?
在本地开发环境中我们很少会遇到需要对jvm进行优化的需求 ,但是到了生产环境 ,我们可能将有下面的需求:
运行的应用“卡住了 ” ,日志不输出 ,程序没有反应服务器的CPU负载突然升高
在多线程应用下 ,如何分配线程的数量?
……
说明:使用的jdk版本为1.8 。
jvm的运行参数
在jvm中有很多的参数可以进行设置 ,这样可以让jvm在各种环境中都能够高效的运行 。绝大部分的参数保持默认即可 。
三种参数类型
jvm的参数类型分为三类 ,分别是:
标准参数-help
-version -X参数(非标准参数 ,相对变化较少的)-Xint
-Xcomp -XX参数(使用率较高 ,JVM调优的主要部分)-XX:newSize
-XX:+UseSerialGC标准参数
jvm的标准参数 ,一般都是很稳定的,在未来的JVM版本中不会改变 ,可以使用java -help
检索出所有的标准参数 。实战
实战1:查看jvm版本
实战2:通过**-D**设置系统属性参数
进行编译 、测试:
-server与-client参数
可以通过-server或-client设置jvm的运行参数 。
它们的区别是Server VM的初始堆空间会大一些 ,默认使用的是并行垃圾回收器,启动慢运行快 。
Client VM相对来讲会保守一些 ,初始堆空间会小一些 ,使用串行的垃圾回收器 ,它的目标是为了让JVM的启动速度更快 ,但运行速度会比Serverm模式慢些 。 JVM在启动的时候会根据硬件和操作系统自动选择使用Server还是Client类型的JVM 。 32位操作系统如果是Windows系统 ,不论硬件配置如何 ,都默认使用Client类型的JVM 。
如果是其他操作系统上 ,机器配置有2GB以上的内存同时有2个以上CPU的话默认使用server模式 ,否则使用client模式。 64位操作系统只有server类型 ,不支持client类型 。
测试:
点击关注 ,第一时间了解华为云新鲜技术~
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!