有哪些高效的常见垃圾回收处理方式?

更新于
2026-09-16 15:53:49
26阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1496个文字,预计阅读时间需要6分钟。

有哪些高效的常见垃圾回收处理方式?

1. 标记清除法(Mark and Sweep)第一步:从根节点出发,遍历全局,标记所有可达对象。第二步:清除所有未标记的对象。优点:方法简单,速度快。缺点:容易产生内存碎片。

1、标记清除法(Mark And Sweep)

第一步:从根部出发,遍历全局,然后对所有可达的对象进行标记

第二步:对所有未标记的对象进行清除

优点:方法简单,速度较快。缺点:容易产生较多的内存碎片。

采用这种方式的语言:lua等

2、标记整理回收(mark-compact)

第一步和标记清除法一样,标记所有可达对象

有哪些高效的常见垃圾回收处理方式?

第二步将未标记的对象清除,同时将现有对象的空间合并

优点:没有内存碎片。缺点:合并空间的时候,引用该对象的所有线程都会被挂起,合并完成后才会重新执行。

采用这种方式的语言:c#等

3、标记复制回收(mark-copy)

复制算法开辟了两个相等的空间,每次只使用其中的一块空间

第一步标记

第二步将所有标记过的对象,复制到另一块空间,当复制完成后,指向原有对象的指针指向新的对象。全部复制完成后,释放原有的空间。

阅读全文

本文共计1496个文字,预计阅读时间需要6分钟。

有哪些高效的常见垃圾回收处理方式?

1. 标记清除法(Mark and Sweep)第一步:从根节点出发,遍历全局,标记所有可达对象。第二步:清除所有未标记的对象。优点:方法简单,速度快。缺点:容易产生内存碎片。

1、标记清除法(Mark And Sweep)

第一步:从根部出发,遍历全局,然后对所有可达的对象进行标记

第二步:对所有未标记的对象进行清除

优点:方法简单,速度较快。缺点:容易产生较多的内存碎片。

采用这种方式的语言:lua等

2、标记整理回收(mark-compact)

第一步和标记清除法一样,标记所有可达对象

有哪些高效的常见垃圾回收处理方式?

第二步将未标记的对象清除,同时将现有对象的空间合并

优点:没有内存碎片。缺点:合并空间的时候,引用该对象的所有线程都会被挂起,合并完成后才会重新执行。

采用这种方式的语言:c#等

3、标记复制回收(mark-copy)

复制算法开辟了两个相等的空间,每次只使用其中的一块空间

第一步标记

第二步将所有标记过的对象,复制到另一块空间,当复制完成后,指向原有对象的指针指向新的对象。全部复制完成后,释放原有的空间。

阅读全文