任何重大项目都使用Boehm GC?

时间:2011-07-16 22:17:14

标签: boehm-gc

我很好奇是否有任何重大项目使用过Boehm GC?如果有任何游戏项目使用过垃圾收集器,我特别感兴趣。如果没有,Boehm GC是否对游戏项目不利?

像Boehm GC这样的简单代码可以处理的事实让我印象深刻:

#include <stdio.h>
#include <stdlib.h>
#include <gc.h>

int main(void)
{
    int i;

    GC_INIT();
    for (i = 0; i < 10000000; ++i)
    {
        int *p = GC_MALLOC(sizeof(int *));
        //int *q = malloc(sizeof(int *));

        printf("Heap size = %d\n", GC_get_heap_size());
    }

    return 0;
}

使用Boehm GC制作游戏有什么警告吗?

由于

1 个答案:

答案 0 :(得分:0)

Open Modelica编译器(OMC)使用Boehm GC。 它是一个非常大型的应用程序,具有超过30万行代码,可用于工业和研究领域。垃圾收集器在模拟过程中收集垃圾。

请参见https://github.com/OpenModelica/OMCompiler/tree/master/SimulationRuntime/c/gc 它为垃圾收集器定义了内部API,可能是一个很好的参考和有趣的阅读。

但是,如果您打算用C ++制作游戏,我建议改用智能指针。如果您确实希望拥有垃圾收集器,并且出于某种原因需要使用C或C ++,则Boehm是一个不错的选择。否则,如果性能对于您正在编程的游戏而言不是至关重要的,那么明智的做法是使用高效的垃圾收集器(如Java或C#)来查看其他语言。