2015-03-01 4 views

ответ

3

Потому что это иногда больше, чем просто псевдоним для malloc(). Иногда это псевдоним для _PyMem_DebugMalloc(), и есть некоторый глобальный учет для отслеживания уникальных объектов памяти. Нет никакого смысла выпускать GIL только для вызова PyMem_Malloc(), так что вы, вероятно, делаете что-то более сложное в C. Если это так, вы можете просто позвонить malloc() и не получить какой-либо отладочный материал.

+0

С Python 3.4 существует также 'PyMem_RawMalloc()', который не требует сохранения GIL (см. [PEP 445] (https://www.python.org/dev/peps/pep-0445/)). – Kai

Смежные вопросы