GC 优化的两个目标:
- 将进入老年代的对象数量降到最低
- 减少 Full GC 的执行时间
GC 优化的基本原则是:将不同的 GC 参数应用到两个及以上的服务器上然后比较它们的性能,然后将那些被证明可以提高性能或减少 GC 执行时间的参数应用于最终的工作服务器上。
GC 优化需要考虑的 JVM 参数
类型 | 参数 | 描述 |
---|---|---|
堆内存大小 | -Xms | 启动 JVM 时堆内存的大小 |
-Xmx | 堆内存最大限制 | |
新生代空间大小 | -XX:NewRatio | 新生代和老年代的内存比 |
-XX:NewSize | 新生代内存大小 | |
-XX:SurvivorRatio | Eden 区和 Survivor 区的内存比 |
GC 优化时最常用的参数是-Xms
,-Xmx
和-XX:NewRatio
。-Xms
和-Xmx
参数通常是必须的,所以NewRatio
的值将对 GC 性能产生重要的影响。
有些人可能会问如何设置永久代内存大小,你可以用-XX:PermSize
和-XX:MaxPermSize
参数来进行设置,但是要记住,只有当出现OutOfMemoryError
错误时你才需要去设置永久代内存
参考博文:https://www.cnblogs.com/yuxiang1/p/10724971.html
JVM基础知识参考博文:https://www.cnblogs.com/andy-zhou/p/5327288.html