- 做了什么事情?
做一次FullGC鸣剪,主要用于回收掉被DirectByteBuff
對象引用的堆外內(nèi)存 - 為什么?
原碼為證,在jdk目錄下的src.zip中引用System.gc()
的地方只有一個慷嗜,就是java.nio.Bits#reserveMemory
;調(diào)用java.nio.Bits#reserveMemory
也只有一個丹壕,即java.nio.DirectByteBuffer#DirectByteBuffer(int)
庆械。 - 怎么觸發(fā)?
JVM使用的是CMS垃圾回收算法
-XX:UseConcMarkSweepGC&&ExplicitGCInvokesConcurrent&&GCCause::_java_lang_system_gc
- 應用場景有哪些菌赖?
回收掉被DirectByteBuff對象引用的堆外內(nèi)存
參考資料:
http://mp.weixin.qq.com/s/V1Y6DIoscTuv7RVlIZgVpw
http://hllvm.group.iteye.com/group/topic/27945
http://www.reibang.com/p/40412b008cb5