Java性能调优
如何根据项目的需要设置Java运行参数,以达到更好的运行效率,及出现性能瓶颈时如何优化,还有哪些潜在的经验和规则。
JVM调优
GC的性能指标主要考虑两个方面:吞吐量和STW时间。应尽量减少Major GC的频率。
- 堆大小尽量设置大一点,且
-Xms
和-Xmx
设置相同的大小; - 新生代大小设置合理,通过
-Xmn
参数设置,控制好新生代和老年代的比例,如果过小,则会导致频繁YGC,对象进入老年代,使老年代过早进入FullGC; - 当使用CMS收集器的时候,老年代会产生内存碎片,因此要开启
-XX:+UseCMSCompactAtFullCollection
参数来开启对老年代内存的压缩,使用-XX:CMSFullGCsBeforeCompaction=0
参数,进行多少次FullGC后压缩; - 采用并发回收时,年轻代可以小一点,年老代要大,因为年老代用的是并发回收,即使时间长点也不会影响其他程序继续运行,网站不会停顿;
- 如果是web应用,采用CMS收集器时,可能是好的选择。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 张国丰!
评论