Guile垃圾收集器中的堆大小启发式问题

2025-05-26

Guile项目正在将一个基于Nofl的保守扫描垃圾收集器集成到其构建系统中。目前使用可增长堆策略,该策略通过乘数来调整堆大小,以应对内存碎片问题。然而,如果内存碎片严重,即使堆大小已达到预期大小的两倍,仍然可能发生分配失败,导致程序死锁。文章探讨了解决这个问题的方法,包括提高乘数、改变堆组织方式,以及为Nofl收集器预留空闲块等。最终目标是使Guile垃圾收集器能够高效地处理内存碎片,并避免死锁的发生。

开发