gpt4 book ai didi

Java GC 停止并复制

转载 作者:行者123 更新时间:2023-11-29 08:17:11 24 4
gpt4 key购买 nike

这个问题是我之前的 Java GC 问题的后续问题:Java Garbage Collector clarification

这个问题也是指同一篇文章。

我对为什么 stop and copy 有点困惑对对象堆分配进行碎片整理的方法是如此常用。是的,它对堆进行碎片整理,但似乎有大量开销,因为基本上你将堆大小的总量减少了一半。当一半的空间用完时,您还需要复制所有 Activity 对象。

除了碎片整理之外,还有什么其他根本原因可以说明为什么“停止并复制”比说“标记并清除”更好吗?

最佳答案

实际上,碎片化的根本,一些 GC 打败碎片化的能力是一笔可观的 Assets 。

停止复制算法曾经在 GC 实现中很流行,因为:

  1. 实现起来很简单;
  2. 它会自动对内存进行碎片整理;
  3. 它的运行时间与 Activity 对象的数量成正比,这使得它渐进地非常高效。

更现代的 GC,包括那些在 Java 中使用的 GC,使用更复杂的策略,因为他们想要短暂的暂停(而不是让总的 GC 时间变短,他们更喜欢从不停止应用程序一段时间长时间,因为暂停不利于交互),以便与缓存和虚拟内存更干净地交互,并从具有多个 CPU 的系统中受益。

Jones and Lins book对于任何想了解垃圾收集的人来说都是必读的。

关于Java GC 停止并复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3753538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com