代码之家  ›  专栏  ›  技术社区  ›  J D

移动垃圾收集器的成本

  •  9
  • J D  · 技术社区  · 14 年前

    移动垃圾收集器(如分代收集器)会产生额外的生成代码来跨GC安全点存储和重新加载引用。与不移动收集器相比,是否有人量化了此开销的性能成本?

    我之所以这么问,是因为我对设计一个收集器感兴趣,它可以高效地回收短期价值,而不必移动它们。

    1 回复  |  直到 14 年前
        1
  •  6
  •   Simon Marlow    14 年前

    保守的 非移动GC?在我看来,如果您对编译路径有足够的控制能力来执行精确的GC,那么保守的GC是一个错误的选择。

    • Immix

    • 位置和缓存行为。有很多关于移动和非移动GC的研究;参见 GC Bibliography . 一般来说,压缩对缓存是有好处的,尽管复制GC通常是广度优先的,这是一个不好的选择(访问模式往往是深度优先的),所以在这个领域有很多研究试图重新排列对象以匹配访问模式。

    我个人的观点是,要支持真正快速的分配,您需要一个L2大小的托儿所,它具有复制集合和缓冲指针分配功能。如果你做其他事情,分配会变得更昂贵,这会扭曲很多事情:优化以减少分配变得更重要,因此你最终会在那里花费精力,使事情变得更复杂。我宁愿让分配真的很便宜,然后不担心它。