调用System.gc方法是否真正回收,G1回收器

原创
2020/08/28 16:52
阅读数 292

1、查看源码最终调用的本地方法JVM_GC()方法

2、该方法实现:

a、会判断DisableExplicitGC是否开启,默认开始,该开关是JVM入参,用例控制是否允许用户调用system.gc方法。-XX:+DisableExplicitGC

b、紧接着调用:Universe::heap()->collect(GCCause::_java_lang_system_gc);

heap方法,需要到对应的垃圾回收器内查看,不同的垃圾回收器有不同的实现。我们这次仅仅只针对G1.

c、调用should_do_concurrent_full_gc()判断是否要进行并发fullGC  ExplicitGCInvokesConcurrent参数控制

d、是否要真正GC还需要一些策略的校验
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部