主要观点:
- 介绍了半空间收集器的优点,如作为正确性预言机、性能可理解等,且简单半空间收集器具有可靠性。
- 指出多线程使经典半空间收集器难以扩展,通常用块结构堆来解决,块结构堆需大对象空间,且通常选择大对象分配阈值小于块大小。
- 强调带有块结构堆的复制收集器不可靠,原因是非交换式疏散会导致收集后碎片不一定小于收集前碎片。
- 探讨了收集器中不可靠性的其他来源,如多线程、并行收集器线程、收集时分配内存、虚拟内存等。
- 认为只有在没有线程的情况下坚持可靠收集器才有意义,增加堆内存可缓解碎片相关的不可靠性,虚拟内存和可增长堆也很好。
关键信息:
- 半空间收集器在 Whippet 开发中的作用及特点。
- 块结构堆的解决方案及相关细节。
- 不可靠性的各种情况及原因。
- 增加堆内存和使用虚拟内存可缓解不可靠性。
重要细节:
- 半空间收集器总是移动对象,需精确枚举对象图边缘。
- 简单半空间收集器在给定特定存活对象集时,有单一堆大小使分配和收集成功或失败。
- 块结构堆按 256MB 分成 4096 个 64kB 的块,用于多线程分配。
- 复制收集器在块结构堆下不可靠,不同对象顺序会导致块末碎片不同。
- 多线程、并行收集器线程等会导致收集器的其他不可靠性来源。
- 增加堆内存可缓解碎片相关和多线程相关的不可靠性,虚拟内存和可增长堆有益。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。