GC调优
GC调优原则
就我个人的理解而言,对于一个应用程序来说,应当存在四点调优原则
- 大多数的java应用都不需要GC调优
- 大部分需要GC优化的,不是参数问题,而是代码问题
- 优化代码带来的性能提升远远大于参数调整
- GC调优应当是程序优化的最后手段
GC调优的目的
- 使GC的时间足够小.这个没有硬性的时间值,可以根据项目的不同而自由设定.这里笔者给出一个参考系的指标:Minor GC执行时间不到50ms,Full GC执行时间不到1S
- 使GC的次数足够小.同GC时间类似,这里给出参考系指标,Minor GC执行不频繁,大于10S一次,Full GC执行也不算频繁,大于10分钟一次.
调优实战
在性能调优实战一中我们已经解决了FullGC的问题,实际上在我们增大堆内存空间的时候,已经同时明显的减少了MinorGC的次数,调整后的MinorGC次数为13次,如下图: