什么是Gambit-C的GC机制?

时间:2011-06-11 18:40:13

标签: garbage-collection scheme gambit

Gambit-C的GC机制是什么?我对制作互动应用感到好奇。我想知道它是否可以避免爆破GC操作。

2 个答案:

答案 0 :(得分:2)

根据这些主题:

Gambit至少在2008年9月之前拥有传统的世界末日GC。线程中的人建议使用预先分配的对象池来避免GC操作本身。我无法了解当前的实施情况。

*很难同意这次谈话。因为我不能汇集不是我自己编写的对象,所以最终完全GC将通过累积的小/非池化临时对象发生。但@Gregory提到的方法可能有助于避免这个问题。但是,我希望将增量GC添加到Gambit:)

答案 1 :(得分: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将频繁运行而不是每次运行都做很多。总体而言,这可能会更昂贵,但要避免费用爆炸。然后,您可以相当轻松地预算该费用,以尽快提高服务质量。