Описание тега boehm-gc

Замена сборщика мусора для функции malloc() в языке C с использованием алгоритма метки / очистки.
1 ответ

Как аннотировать собранный BoehmGC код для Splint?

Splint хорошо отслеживает утечки памяти в C-коде. каждый malloc() должен иметь соответствующий free(), Но BoehmGC-собранный код использует GC_MALLOC() без соответствия GC_FREE(), Это заставляет Сплинта сходить с ума от множества сообщений об утечка…
01 авг '11 в 19:21
1 ответ

Каковы подходы к оптимизации фазы оценки ГП без поколения?

Я работаю на сборщике мусора Boehm-Demers-Weiser, принадлежащем Unity, который не является генератором сборочных данных. У меня есть большое дерево управляемых объектов в памяти (~100 000 объектов, ~200 МБ). Эти объекты, по сути, являются кешем и ни…
1 ответ

Утечка памяти при использовании сборки мусора с glib

Я пытаюсь интегрировать сборщик мусора Boehm с GLib в Linux, но в одном случае я обнаружил, что он не освобождает память: когда я много раз вызываю g_strsplit, у него заканчивается память и происходит ошибка сегмента. README для сборщика мусора пред…
08 янв '15 в 06:33
1 ответ

Boehm GC: как эффективно отлаживать разбитые объекты кучи?

При запуске моей программы я получаю следующие ошибки от Boehm GC (с определением GC_DEBUG): GC_check_heap_block: found smashed heap objects: 0x8ef1008 in or near object at 0x8ef1010(<smashed>, appr. sz = 29) 0x8ef1188 in or near object at 0x8…
26 дек '10 в 05:03
1 ответ

Когда будет выпущен Boehm-GC 7,6

Boehm-gc 7.6 находится в состоянии предварительного выпуска. Когда будет выпущен boehm-gc 7.6? Можем ли мы использовать его в продукте сейчас? Я не могу найти план выпуска или любую дорожную карту. Спасибо!
29 июл '17 в 08:48
1 ответ

Как мне заставить libgc работать в Mac OS X?

Я должен что-то упустить. Даже самая простая тестовая программа, использующая libgc, не работает. Есть какие-нибудь подсказки? $ cat test.c #include <gc/gc.h> int main(void) { char *s; s = GC_MALLOC(1); return 0; } $ cc -ansi -pedantic -Wall -…
27 май '12 в 12:27
1 ответ

boehm-gc с библиотекой потоков C++11

Как мы знаем, использование boehm-gc в многопоточности требует вызова GC_register_my_thread с основанием стека от GC_get_stack_base, но, похоже, не очень хорошо работает с библиотекой потоков C++11, таких как std::thread... Как я могу использовать b…
07 янв '14 в 09:33
1 ответ

boehm-gc: финализатор и сжатие до кучи

У меня есть 2 вопроса о Boehm-GC. Когда GC собирает мусорный объект, GC освобождает память без вызова деструктора, хотя у объекта есть деструктор. Я обнаружил, что GC называет "finailzer", но я не знаю, как его зарегистрировать... Как я могу это сде…
22 дек '13 в 06:40
1 ответ

Держит ли CPython GIL гарантию остановки всех потоков cpython?

CPython является многопоточным приложением, и поэтому в Unix он использует (p) потоки. Расширения Python (написанные, скажем, на C) часто должны содержать GIL, чтобы гарантировать, что объекты Python не будут повреждены в критических разделах кода. …
2 ответа

Сборка мусора для `fopen()`?

Boehm gc занимается только выделением памяти. Но если кто-то хочет использовать сборщик мусора, чтобы иметь дело с fopen() чтобы fclose() больше не нужен. Есть ли способ сделать это в C? PS Например, PyPy использует подход сборки мусора для открытия…
21 фев '19 в 00:41
2 ответа

Поиск корней для сборки мусора в C

Я пытаюсь реализовать простой сборщик мусора и метки в C. Первым шагом алгоритма является поиск корней. Итак, мой вопрос: как мне найти корни в программе на C? В программах, использующих malloc, я буду использовать пользовательский распределитель. Э…
27 ноя '12 в 03:45
1 ответ

Boehm GC++ сборщик мусора: слишком много разделов кучи Увеличьте MAXHINCR или MAX_HEAP_SECTS

Я использую сборщик мусора Boehm C++ в приложении. Приложение использует программу Python для детерминированных конечных автоматов Левенштейна для вычисления расстояния Левенштейна между двумя строками. Я перенес программу Python на C++ в версии Cen…
18 янв '11 в 20:12
1 ответ

Таможенное распределение и Boehm GC

В моем проекте компилятора "снова снова выключен" я реализовал замыкания как выделенную память с исполняемым префиксом. Итак, замыкание распределяется так: c = make_closure(code_ptr, env_size, env_data); c указатель на блок выделенной памяти, которы…
1 ответ

Использование QT с Boehm-Demers-Weiser-Gc

Можно ли использовать Qt с BDW-GC? Я знаю, что Qt имеет сложную Систему для управления памятью, но части моей реализации все равно будут использовать GC, поэтому было бы удобно не беспокоиться и всегда использовать ее. Насколько я читал, одной из пр…
01 мар '18 в 09:46
1 ответ

Сборка libgc не удалась в Mac OS X 10.6 Snow Leopard: ... и требует определения _XOPEN_SOURCE

Следующие шаги: $ wget http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.0.tar.gz $ tar xvfz gc-7.0.tar.gz $ cd gc-7.0 $ ./configure $ make Ошибка с этой ошибкой: In file included from mach_dep.c:163: /usr/include/ucontext.h:42:2: error: #…
2 ответа

BoehmGC - Понимание распределителя памяти GC_malloc

Я ломаю голову в понимании схемы распределения BoehmGC - GC_malloc, Я не понимаю, как он распределяет память, не видел ни malloc, ни mmap, которые GC_malloc внутренне звонки. Может ли кто-нибудь любезно помочь мне? Любые ссылки или фрагмент кода ока…
07 сен '11 в 10:33
1 ответ

Привязка glib к Crystal lang (выпуск GC)

Я пытаюсь связать некоторые функции из glib в Crystal. Я сделал это, и это работает: @[Link("glib-2.0")] lib LibG fun g_utf8_strup(str : UInt8*, len : UInt32) : UInt8* fun g_utf8_strdown(str : UInt8*, len : UInt32) : UInt8* end Однако это приводит к…
09 фев '16 в 23:22
2 ответа

Библиотека "шнур", которая поставляется с Boehm GC, вызывает неопределенные ошибки ссылок

У меня есть проект, который использует Boehm GC, поэтому я подумал, что я мог бы использовать cord Строковая библиотека, которая идет с этим. Проблема в том, что все мои звонки на cord функции вызывают ошибки "неопределенная ссылка". У меня есть фай…
08 май '11 в 20:33
0 ответов

Сборщик мусора: финализация не всегда вызывается?

Мой вопрос связан с финализацией Java: как я могу освободить ресурсы, не относящиеся к GC, даже если есть ошибка. finalize НЕ всегда вызывается в большинстве сборщиков мусора? Если так, то почему бы и нет? и есть ли GC, который гарантирует звонок fi…
20 янв '14 в 02:20
2 ответа

libgc: почему этот код просачивается?

Я пытался использовать libgc (сборщик мусора BDW) в этом простом коде. Обратите внимание, что ссылка хранится только на последнем узле в фальшивом "списке", так что живой набор - это только два последних узла. // thanks to @chill for this example #i…
13 июл '15 в 10:14