JVM 调优实战--垃圾回收的常见算法

目录


引用计数法

原理

优缺点

标记清除法

原理

优缺点

标记压缩算法

原理

优缺点

复制算法

原理

JVM年轻代内存空间

优缺点

分代算法

总结


自动化的管理内存资源,垃圾回收机制必须要有一套算法来进行计算,哪些是有效的对象,哪些是无效的对象,对于无效的对象就要进行回收处理。

常见的垃圾回收算法有:引用计数法、标记清除法、标记压缩法、复制算法、分代算法等。

引用计数法

原理

 

优缺点

标记清除法

标记清除算法也叫根可达算法。在垃圾回收器执行过程中会暂停所有的工作线程。

原理

优缺点

标记压缩算法

原理

优缺点

复制算法

原理

将存活对象从from区复制到to区:

清空from区,并且将to区的存活对象移动到from区,相当于颠倒一下位置:

JVM年轻代内存空间

使用的就是复制算法:

优缺点

分代算法

总结

目前还没有一种完美的垃圾回收算法,每一种算法既有优点又有缺点,因此根据垃圾回收对象的特点进行选择,才是最明智的选择。

分代算法就是如此(因地制宜),根据回收对象的特点进行选择:

在JVM中,年轻代适合使用复制算法,因为垃圾对象较多;

老年代适合使用标记清除或者标记压缩算法,因为垃圾较少,存活对象较多。

发布了824 篇原创文章 · 获赞 369 · 访问量 79万+

猜你喜欢

转载自blog.csdn.net/a772304419/article/details/104002960