System.gc()引起的GC
操作步骤
- 对目标程序进行在线分析。
- 切换到GC页签。
调用http://IP:9118/gctest/systemgc,触发GC事件。
图1 GC页签
图2 优化建议
发现某些GC是调用System.gc()函数引起的,此时可查看优化建议中关于System.gc()函数的使用注意事项。
- 根据优化建议,开启启动参数。
开启启动参数-XX:+ExplicitGCInvokesConcurrent。
图3 概览
图4 GC页签
发现System.gc()函数引起的GC垃圾回收器由Old变成了Young,缓解了垃圾回收的压力。
- 调优总结。
程序中System.gc()函数的使用要慎重,如果明确程序中不会用到,并且依赖的相关框架也不使用,可以启用参数(-XX:+DisableExplicitGC)进行禁用。如果程序或依赖框架需要使用该函数,则需要开启参数(-XX:+ExplicitGCInvokesConcurrent)优化GC方式。
父主题: 调优过程