Какие крупные проекты используют Boehm GC? - PullRequest
3 голосов
/ 17 июля 2011

Мне любопытно, использовали ли какие-нибудь крупные проекты 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 голосов
/ 24 апреля 2019

Компилятор Open Modelica (OMC) использует Boehm GC. Это очень большое приложение с более чем 300 000 строк кода и используется как в промышленности, так и в исследованиях. Сборщик мусора собирает мусор во время моделирования.

См. https://github.com/OpenModelica/OMCompiler/tree/master/SimulationRuntime/c/gc Он определяет внутренний API для сборщика мусора и может быть хорошим справочником и интересным чтением.

Однако, если вы собираетесь делать игру на C ++, я бы рекомендовал вместо этого использовать умные указатели. Если вы действительно хотели бы иметь удобство использования сборщика мусора и вам по какой-то причине нужно использовать C или C ++, Boehm - хороший вариант. В противном случае, если производительность не критична для игры, которую вы программируете, было бы разумно взглянуть на другие языки с помощью эффективных сборщиков мусора, таких как Java или C #.

...