首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 系统运维 >

java垃圾回收那点事(1) System.gc开始说起

2013-09-08 
java垃圾回收那点事(一) System.gc开始说起java提供了从语言角度能够强制jvm进行垃圾回收,在我们的程序中

java垃圾回收那点事(一) System.gc开始说起

java提供了从语言角度能够强制jvm进行垃圾回收,在我们的程序中可以通过调用System.gc去强制jvm进行垃圾回收,通过源码我们可以看到实际上是调用了Runtime去强制gc

if (UseParallelGC) {#ifndef SERIALGC    Universe::_collectedHeap = new ParallelScavengeHeap();#else  // SERIALGC    fatal("UseParallelGC not supported in java kernel vm.");#endif // SERIALGC  } else if (UseG1GC) {#ifndef SERIALGC    G1CollectorPolicy* g1p = new G1CollectorPolicy_BestRegionsFirst();    G1CollectedHeap* g1h = new G1CollectedHeap(g1p);    Universe::_collectedHeap = g1h;#else  // SERIALGC    fatal("UseG1GC not supported in java kernel vm.");#endif // SERIALGC  } else {    GenCollectorPolicy *gc_policy;    if (UseSerialGC) {      gc_policy = new MarkSweepPolicy();    } else if (UseConcMarkSweepGC) {#ifndef SERIALGC      if (UseAdaptiveSizePolicy) {        gc_policy = new ASConcurrentMarkSweepPolicy();      } else {        gc_policy = new ConcurrentMarkSweepPolicy();      }#else   // SERIALGC    fatal("UseConcMarkSweepGC not supported in java kernel vm.");#endif // SERIALGC    } else { // default old generation      gc_policy = new MarkSweepPolicy();    }    Universe::_collectedHeap = new GenCollectedHeap(gc_policy);  }
从源码中我们可以看到

Parallel GC 是用的是ParallelScavengeHeap, 

CMS 使用的是 GenCollectdHeap 

G1使用的是G1CollectedHeap

热点排行