当调用System.gc()时,是否可以使用G1垃圾收集器?

4
在Hotspot中,当调用System.gc()时,可以通过在命令行中添加-XX:+ExplicitGCInvokesConcurrent选项来使用并发标记清除收集器。
是否有任何相当的方法使JVM在调用System.gc()时使用G1收集器?默认情况下,似乎使用标准并行收集器。
我猜没有,但我只是想知道是否有人可以确认一下。
不用担心!我没有计划自己调用System.gc(),但JVM的某些部分(直接缓冲区,RMI)依赖于调用它。
2个回答

4

0
bool G1CollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause) {
  switch (cause) {
    case GCCause::_gc_locker:               return GCLockerInvokesConcurrent;
    case GCCause::_java_lang_system_gc:     return ExplicitGCInvokesConcurrent;
    case GCCause::_g1_humongous_allocation: return true;
    default:                                return false;

}

还有

bool ExplicitGCInvokesConcurrent = false {product}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接