Eon*_*nil 5 scheme garbage-collection gambit
Gambit-C 的 GC 机制是什么?我很好奇这个用于制作交互式应用程序。我想知道它是否可以避免突发GC操作。
小智 1
根据http://dynamo.iro.umontreal.ca/~gambit/wiki/index.php/Debugging#Garbage_collection_threshold gambit有一些控制:
垃圾收集阈值
请注意运行时选项 h(最大堆大小,以千字节为单位)和 l(livepercent)。请参阅参考手册了解更多信息。将 livepercent 设置为 5 意味着当为应该垃圾收集的对象分配的内存比为不应该垃圾收集的对象分配的内存多十九倍时,将进行垃圾收集。livepercent 选项存在的原因是提供一种方法来控制垃圾收集器在内存消耗方面应如何节省/慷慨,以及 CPU 负载应如何重/轻。
您始终可以通过 (##gc) 强制垃圾回收。
如果您在少量操作后强制进行垃圾收集,或者安排它接近连续,或者将 livepercent 设置为 90 之类,那么 gc 可能会频繁运行,并且每次运行时不会执行太多操作。总体而言,这可能会更昂贵,但可以避免费用激增。然后,您可以相当轻松地预算该费用,以使服务速度更快。