JVM学习系列学习一
凯哥java 凯哥java
本文主要内容:
一:为什么要对JVM进行优化?
我们在自己电脑上进开发的时候,几乎很少考虑对JVM进行优化。但是,我们写的代码,放到生成环境会出现入下各种情况:
2:为什么服务器cpu使用率突然飙升上来了
3:在多线程应用下,如何分配线程数量?
……
怎么解决?重启吗?万能的重启服务吗?生成环境能随随便便就重启吗 ?
通过本系列教程,我们将对JVM有更深入的学习。目的:我们不仅仅让程序能跑起来,而且是要跑的更快!可以分析解决在生产环境中所遇到的各种“棘手”的问题。
注:本套课程使用的JDK版本为1.8.所以,建议学习的朋友也用1.8的。
二:JVM的运行参数
在JVM中有很多的参数是可以进行设置的。这样做的目的是可以让JVM在各种环境中都能够高效的运行。绝大部分的参数保持默认的即可。
2.1:JVM三种参数类型
标准参数
-help
-version
标准参数,一般都是很稳定的,既是在未来的JVM版本中也不会被去掉或者改变的。可以使用java -help查看所有的标准参数。
Java -version 就是标准的参数。
-X参数(非标准参数)
-Xint
-Xcomp
-X参数是非标准的参数,在不同的版本中,参数可能会有所不同,可以通过Java -X命令来查看:
-XX:newSize
-XX:+UseSerialGC
-XX参数也是非标准参数,主要用于JVM的调优和debug操作。
-XX参数的使用有2种方式,一种是boolean类型,一种是非boolean类型。
Boolean类型的
格式:-XX:[+-]<name>
作用:标识启用或禁用<name>属性
如:-XX:+disableExplicitGC。表示禁用手动调用GC操作,也就是说调用System.gc()无效的。
非Boolean类型:
格式:-XX:<name>=<value>
作用:表示<name>属性的值为<value>
如:-XX:NewRatio=1。表示新生代和老年代的比值。
-xms与-Xmx参数:
-xms与-Xmx分别是设置JVM的堆内存的初始值大小和最大大小。
-Xmx2048m:等价于-XX:maxHeapSize,设置JVM最大堆内存为2048M
-xms512m:等价于-XX:InitialHeapSize,设置JVM初始堆内存为512M
适当的调整JVM的内存大小,可以充分雷勇服务器资源,让程序跑的更快。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。