По состоянию на this discussion, PyMem_Malloc()
требуется GIL; однако, если функция представляет собой не что иное, как псевдоним для malloc()
, кого это волнует?Зачем мне нужен gil для PyMem_Malloc()?
5
A
ответ
3
Потому что это иногда больше, чем просто псевдоним для malloc()
. Иногда это псевдоним для _PyMem_DebugMalloc()
, и есть некоторый глобальный учет для отслеживания уникальных объектов памяти. Нет никакого смысла выпускать GIL только для вызова PyMem_Malloc()
, так что вы, вероятно, делаете что-то более сложное в C. Если это так, вы можете просто позвонить malloc()
и не получить какой-либо отладочный материал.
Смежные вопросы
- 1. Зачем мне нужен: «org.apache.derby.jdbc.ClientDriver»
- 2. Зачем мне нужен android.permission.ACCESS_CHECKIN_PROPERTIES
- 3. Зачем мне нужен перерыв?
- 4. Зачем мне нужен интерфейс?
- 5. Зачем мне нужен std :: get_temporary_buffer?
- 6. JMH - зачем мне нужен Blackhole.consumeCPU()
- 7. Зачем мне нужен вертикальный холст для выравнивания?
- 8. Зачем мне нужен opCmp для анонимного класса?
- 9. Зачем мне нужен интерфейс запроса?
- 10. Зачем мне нужен запрос CAST()?
- 11. Зачем мне нужен формообразователь Symfony? Какая польза?
- 12. Зачем мне нужен цикл wp в single.php
- 13. Prototype Pattern, зачем мне нужен интерфейс?
- 14. Рекурсивный метод: зачем мне нужен оператор возврата?
- 15. Зачем мне нужен этот метод Async?
- 16. Ruby: Зачем мне нужен дополнительный «а + Ь»
- 17. В Perl, зачем мне нужен экспортер?
- 18. Зачем мне нужен бросок в этом случае?
- 19. Зачем мне нужен TestDriver при использовании Java?
- 20. Карты Google: зачем мне нужен ключ API?
- 21. Зачем мне нужен пользовательский диспетчер сеансов?
- 22. Зачем мне нужен getInputStream для HttpUrlConnection для отправки запроса?
- 23. Зачем нужен контекст для getRelativeTimeSpanString?
- 24. Зачем мне нужен пакет exec для выполнения этого rubygem?
- 25. Зачем мне нужен токен обновления для токена доступа refreh
- 26. Зачем мне нужен WCF для создания сервисов RESTful?
- 27. Зачем мне нужен сервер для разработки PhoneGap приложения
- 28. Яблочные сокеты. Зачем мне нужен PrintWriter для выполнения этой работы?
- 29. Зачем мне нужен общедоступный метод для моей работы с аннотацией?
- 30. Зачем мне нужен .union over .unionВсе в Spark для SchemaRDD?
С Python 3.4 существует также 'PyMem_RawMalloc()', который не требует сохранения GIL (см. [PEP 445] (https://www.python.org/dev/peps/pep-0445/)). – Kai