GC调优
GC调优原则
就我个人的理解而言,对于一个应用程序来说,应当存在四点调优原则
- 大多数的java应用都不需要GC调优
- 大部分需要GC优化的,不是参数问题,而是代码问题
- 优化代码带来的性能提升远远大于参数调整
- GC调优应当是程序优化的最后手段
GC调优的目的
- 使GC的时间足够小.这个没有硬性的时间值,可以根据项目的不同而自由设定.这里笔者给出一个参考系的指标:Minor GC执行时间不到50ms,Full GC执行时间不到1S
- 使GC的次数足够小.同GC时间类似,这里给出参考系指标,Minor GC执行不频繁,大于10S一次,Full GC执行也不算频繁,大于10分钟一次.
调优实战
现有一个公司的项目,项目启动前添加参数 -XX:+PrintGCDetails ,该参数含义为打印GC日志.项目启动时打印日志为: