---
title: System.gc()引起的GC
description: "- 已安装鲲鹏DevKit。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/profiler/demo/kunpengbestabnormalgc_21_0007.html
sourcePath: /source/zh/kunpengdevps/profiler/demo/kunpengbestabnormalgc_21_0007.html
indexId: 2de9d5a19ed525d7e12703ab0d9dbf7dbde35cda003f3be4d6c3d5e9c8c8f5a872
---
# System.gc()引起的GC

#### 前提条件

- 已安装鲲鹏DevKit。
- 服务器和操作系统正常运行。
- PC端已经安装SSH远程登录工具
- 准备需要优化的Java程序（  demo(https://github.com/kunpengcompute/devkitdemo/tree/main/Hyper_tuner/testdemo/java_perf_test)
）并在目标服务器上启动。


#### 操作步骤

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方式。
