JVM

2018-07-03  本文已影响6人  汤圆叔

GC是什么?了解原理吗?

GC是垃圾收集的意思(Garbage Collection),JVM通过垃圾回收机制自动回收内存来保证可用内存空间。
JVM的垃圾回收器在JDK1.7以前常用的CMS收集器,特点是短时间停顿,JDK1.7开始使用G1收集器,与其他收集器相比,它具有如下优点:并行与并发、分代收集、空间整合、可预测的停顿等。
GC的工作主要包含三方面内容:

详细的GC工作流程如下:

要注意的是,GC对于大对象的处理效率低下(Minor GC时会发生大量内存复制),所以在处理大对象的分配时,为了提升效率,会直接将大对象分配到Tenured区,避免GC。

分代回收策略中的Minor GC是对新生代进行回收,采用的是“复制-清理”算法,而Major GC是对老年代进行回收,采用的则是“标记-整理”或“标记-清理”算法,Major GC和Minor GC属于Full GC的一部分,而Full GC则是对整个堆进行收集,包括新生代、老年代、永久代。

”所有的 Minor GC 都会触发"全世界的暂停(stop-the-world)",停止应用程序的线程。”,对于大部分应用程序,停顿导致的延迟都是可以忽略不计的。其中的真相就是,Eden区中的大部分对象都能被认为是垃圾,永远也不会被复制到Survivor区或者Tenured区,所以一般Minor GC执行暂停的时间很短。如果正好相反,Eden区大部分新生对象不符合 GC 条件,Minor GC 执行时暂停的时间将会长很多。

JVM内存模型了解吗?

JVM1.6内存结构

Java虚拟机规范中将Java运行时数据分为六种。

上一篇 下一篇

猜你喜欢

热点阅读