中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

System.gc()引起的GC

前提条件

  • 服务器和操作系统正常运行。
  • PC端已经安装SSH远程登录工具
  • 需要优化的Java程序(demo)。

操作步骤

  1. 对目标程序进行在线分析。
  2. 切换到GC页签。

    调用http://IP:9118/gctest/systemgc,触发GC事件

    图1 GC页签
    图2 优化建议

    发现某些GC是调用System.gc()函数引起的,此时可查看优化建议中关于System.gc()函数的使用注意事项。

  3. 根据优化建议,开启启动参数。

    开启启动参数-XX:+ExplicitGCInvokesConcurrent。

    图3 概览
    图4 GC页签

    发现System.gc()函数引起的GC垃圾回收器由Old变成了Young,缓解了垃圾回收的压力。

  4. 调优总结。

    程序中System.gc()函数的使用要慎重,如果明确程序中不会用到,并且依赖的相关框架也不使用,可以启用参数(-XX:+DisableExplicitGC)进行禁用。如果程序或依赖框架需要使用该函数,则需要开启参数(-XX:+ExplicitGCInvokesConcurrent)优化GC方式。