哪种垃圾回收方法最适合处理城市中日益增长的废弃塑料?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1507个文字,预计阅读时间需要7分钟。
1. 标记清除法(Mark and Sweep)第一步:从根部出发,遍历全局,对可达对象进行标记。
2.第二步:对未标记的对象进行清除。
3.优点:方法简单,速度较快。
4.缺点:容易产生内存碎片。
1、标记清除法(Mark And Sweep)
第一步:从根部出发,遍历全局,然后对所有可达的对象进行标记
第二步:对所有未标记的对象进行清除
优点:方法简单,速度较快。缺点:容易产生较多的内存碎片。
采用这种方式的语言:lua等
2、标记整理回收(mark-compact)
第一步和标记清除法一样,标记所有可达对象
第二步将未标记的对象清除,同时将现有对象的空间合并
优点:没有内存碎片。缺点:合并空间的时候,引用该对象的所有线程都会被挂起,合并完成后才会重新执行。
采用这种方式的语言:c#等
3、标记复制回收(mark-copy)
复制算法开辟了两个相等的空间,每次只使用其中的一块空间
第一步标记
第二步将所有标记过的对象,复制到另一块空间,当复制完成后,指向原有对象的指针指向新的对象。全部复制完成后,释放原有的空间。
优点:没有内存碎片,不会gc ,效率高 缺点:需要额外的内存空间
采用这种方式的语言:java的新生代
4、引用计数算法(reference counting)
对象每次被引用的时候对引用次数加1,每次被引用对象被删除时,则对引用次数减1,当引用计数为0时,则删除对象。
优点:迅速,每次当对象引用次数为0时,则马上就会被清除。
本文共计1507个文字,预计阅读时间需要7分钟。
1. 标记清除法(Mark and Sweep)第一步:从根部出发,遍历全局,对可达对象进行标记。
2.第二步:对未标记的对象进行清除。
3.优点:方法简单,速度较快。
4.缺点:容易产生内存碎片。
1、标记清除法(Mark And Sweep)
第一步:从根部出发,遍历全局,然后对所有可达的对象进行标记
第二步:对所有未标记的对象进行清除
优点:方法简单,速度较快。缺点:容易产生较多的内存碎片。
采用这种方式的语言:lua等
2、标记整理回收(mark-compact)
第一步和标记清除法一样,标记所有可达对象
第二步将未标记的对象清除,同时将现有对象的空间合并
优点:没有内存碎片。缺点:合并空间的时候,引用该对象的所有线程都会被挂起,合并完成后才会重新执行。
采用这种方式的语言:c#等
3、标记复制回收(mark-copy)
复制算法开辟了两个相等的空间,每次只使用其中的一块空间
第一步标记
第二步将所有标记过的对象,复制到另一块空间,当复制完成后,指向原有对象的指针指向新的对象。全部复制完成后,释放原有的空间。
优点:没有内存碎片,不会gc ,效率高 缺点:需要额外的内存空间
采用这种方式的语言:java的新生代
4、引用计数算法(reference counting)
对象每次被引用的时候对引用次数加1,每次被引用对象被删除时,则对引用次数减1,当引用计数为0时,则删除对象。
优点:迅速,每次当对象引用次数为0时,则马上就会被清除。

