江小白网络营销方式,WordPress seo终极优化,建设企业营销型网站,交换友情链接的渠道一、标记-清除算法
1、定义
标记-清除算法是最基础的垃圾收集算法。它分为标记和清除两个阶段。先标记出所有需要回收的对象#xff08;即垃圾#xff09;#xff0c;在标记完成后再统一回收所有垃圾对象。 2、优点和缺点
优点#xff1a;实现简单缺点#xff1a; 可能…一、标记-清除算法
1、定义
标记-清除算法是最基础的垃圾收集算法。它分为标记和清除两个阶段。先标记出所有需要回收的对象即垃圾在标记完成后再统一回收所有垃圾对象。 2、优点和缺点
优点实现简单缺点 可能会产生内存碎片导致内存分配效率降低影响程序的性能。标记和清除阶段需要暂停程序的执行造成一定的延迟。
二、复制算法
1、定义
复制算法它把可用内存按容量分为大小相等的两块每次只用其中的一块。当这一块的内存用完了则会把存活的对象复制到另外的一块上然后把已使用的内存空间一次清理掉。 2、优点和缺点
优点 实现简单运行高效由于是对整个内存半区进行垃圾回收所以不需要考虑内存碎片问题。缺点 由于算法代价是把可用内存缩小为原来的一半所以该算法的内存利用率较低对象存活率高时由于需要进行较多的复制操作效率会变低。
3、应用
新生代的垃圾回收
把新生代默认按8:1:1划分。Eden区有一块该块占8份Survior有2块每块占1份。每次只使用Eden区和其中一块Survior区。当Eden区满了时会触发Minor GC。Minor GC过程是把Eden区和Survior区的存活对象复制到剩下的一块Survior区然后一次性清理掉Eden区和之前Survior区的已使用空间。其中若剩下的那一块Survior区没有足够的连续空间容纳Eden区和已使用Survior区的存活对象且有老年代进行内存担保则通过内存担保机制进入老年代。
三、标记-整理算法
1、定义
标记-整理算法它主要分为标记和整理两个阶段。标记阶段和标记-清除阶段相同都是标记出垃圾对象。而整理阶段是先把所有存活对象都向一端移动然后清理掉端边界外的内存。 2、优点和缺点
优点 解决内存碎片问题提高堆的内存利用率。缺点 由于需要标记所有存活对象并整理所有存活对象的引用地址所以效率比较低在移动过程中若移动对象被其中对象引用则还需要调整引用地址这可能导致程序暂停。
3、应用
老年代垃圾回收
四、增量收集算法
1、定义
若一次性收集JVM中所有的垃圾则可能会造成程序长时间的停顿。而增量收集算法可以让垃圾回收线程和程序线程交替执行。每次垃圾回收线程只回收一小片区域的内存空间接着切换到程序线程依次反复直到垃圾回收完成。
2、优点和缺点
优点减少系统停顿时间。缺点由于线程切换造成垃圾回收成本上升且系统吞吐量下降。
3、应用
CMS收集器
五、分代收集算法
1、定义
分代收集算法是根据对象的存活周期不同把内存空间划分为几块。一般把JVM堆划分为新时代和老年代然后根据各个年代的特点使用适当的垃圾回收算法。由于新生代中的对象大部分存活周期短则可以选用复制算法只需要进行少量复制成本就可以回收垃圾。而老年代中的对象存活率高且没有额外空间进行内存担保则需要选择标记-清除算法或者标记-整理算法进行垃圾回收。
2、优点和缺点
3、应用
大部分JVM的垃圾回收
六、分区算法
1、定义
分区算法把整个堆空间划分为连续的不同小区间每个小区间独立使用、独立回收。 2、优点和缺点
优点 控制一次回收多少个小区间减少GC造成的程序停顿时间解决内存碎片问题。缺点实现复杂。
3、应用
G1收集器