欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

JVM的具体 图纸加密 堆实现

点击: 次  来源:劳务派遣管理系统 时间:2018-01-16

原文出处: 占小狼

System.gc()是触发FGC最简朴暴力的方法,在JDK源码中实际上是挪用了Runtime的gc要领。

public static void gc() { Runtime.getRuntime().gc(); }

Runtime.gc的底层实现位于Runtime.c文件中

JNIEXPORT void JNICALL Java_java_lang_Runtime_gc(JNIEnv *env, jobject this) { JVM_GC(); }

个中JVM_GC()的实现位于jvm.cpp

JVM_ENTRY_NO_ENV(void, JVM_GC(void)) JVMWrapper("JVM_GC"); if (!DisableExplicitGC) { Universe::heap()->collect(GCCause::_java_lang_system_gc); } JVM_END

这里有一个DisableExplicitGC参数,默认是false,劳务派遣管理系统,假如启动JVM时添加了参数-XX:+DisableExplicitGC,那么JVM_GC相当于一个空函数,并不会举办GC。

个中Universe::heap()返回当前堆工具,由collect要领开始执行GC,昆山软件公司,并配置当前触发GC的条件为_java_lang_system_gc,内部会按照GC条件执行差异逻辑。

JVM的详细堆实现,昆山软件开发,在Universe.cpp文件中的initialize_heap()由启动参数所配置的垃圾接纳算法抉择。

 JVM的详细 图纸加密 堆实现

 

堆实现和接纳算法对应干系:
1、UseParallelGC:ParallelScavengeHeap
2、UseG1GC:G1CollectedHeap
3、默认可能CMS:GenCollectedHeap