文章

JVM常用的垃圾回收算法

JVM常用的垃圾回收算法

JVM常用的垃圾回收算法

常用的GC算法

MarkSweep

标记清除算法

标记阶段:把垃圾内存标记出来清除阶段:直接将垃圾内存回收这种算法是比较简单的,但是会产生大量的内存碎片,可能导致大对象无法分配,并带来GC问题。

Copying

拷贝算法

将内存分为大小相等的两半,每次只使用其中一半。垃圾回收时,将当前这一块中存活的对象复制到另一半中,并将这一半全部清空。

没有内存碎片内存只有一半的空间可用,浪费空间。而且效率跟存或对象个数有关

MarkCompack

标记压缩算法为了解决拷贝算法和标记清除算法。在完成标记之后,不是直接清理垃圾内存,而是将存活对象往一端移动,然后将端边界以外的所有内存直接清除

比较

这三个算法各有利弊,各自有各自的适用场景。

本文由作者按照 CC BY 4.0 进行授权