目录
jvm调优参数
-Xms、-Xmx
-Xms4g: 设置堆内存初始大小为4g
-Xmx4g: 设置堆内存最大值大小为4g
可以设置-Xms与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmn
-Xmn1536m:设置年轻代大小为1536m
增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
-Xss
-Xss512k:设置每个线程堆栈大小为512k。
JDK5.0以后每个线程堆栈大小为1MB,以前每个线程堆栈大小为256K。应根据应用线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
-XX:NewRatio
-XX:NewRatio=4: 设置年轻代和年老代的比例为1:4,年轻代占整个堆栈的1/5
其中年轻代包括一个Eden区和两个Survivor区
-XX:SurvivorRatio
-XX:SurvivorRatio=8: 设置 两个 Survivor区 和 Eden区 的比例为1:1:8,一个Survivor区占年轻代的1/10
~~~
-XX:PremSize、-XX:MaxPremSize
-XX:PremSize=100m: 设置永久代初始大小为100m。
-XX:MaxPremSize=256m: 设置永久代最大内存为256m。
注JDK1.8后(包括1.8)移除了永久代,永久代(PermGen)被元空间(MetaSpace)替代。这里你是否有很多问好???有就看第二篇参考的元空间
图解jvm调优参数作用区域
通过一张图来了解如何通过参数来控制各区域的内存大小:
参考文献:
https://blog.csdn.net/jisuanjiguoba/article/details/80176223
http://zyouwei.com/%E6%8A%80%E6%9C%AF%E7%AC%94%E8%AE%B0/Java/Java-Memory-Model.html