Является ли какой-либо распределитель slab или что-то подобное, используемое для выделения памяти для thunk-структур в GHC? Или он использует что-то наивное, как malloc
в C?Используется ли распределитель slab для распределения памяти для громкоговорителей в GHC?
Я думаю, что количество громких звонков выделяется в течение короткого времени в ленивых функциональных языках программирования, особенно когда на них работает несколько потоков. Или, не так ли распределений происходят так часто? Я пробовал искать код для него в the GHC repository, но не смог найти.
[Соответствующая статья о сборщике мусора GHC] (http://simonmar.github.io/bib/papers/parallel-gc.pdf). – Alec
Распределение памяти для собранных мусора обычно сильно отличается от того, как вы делали вещи в C. Причина «malloc» настолько дорога, потому что объекты могут быть освобождены в любом порядке, но не могут быть перемещены. Однако коллекторы мусора обычно перемещают объекты, а это значит, что вы можете сделать сам распределитель намного проще. –