Spec-Zone.ru › Python 3.13

Поддержка карт perf

На поддерживаемых платформах (на момент написания документа — только Linux) среда выполнения может использовать файлы карт perf, чтобы сделать функции Python видимыми для внешнего инструмента профилирования (например, perf). Запущенный процесс может создать файл в каталоге /tmp, содержащий записи, которые позволяют сопоставить участок исполняемого кода с именем. Этот интерфейс описан в документации инструмента Linux Perf.

В Python эти вспомогательные API могут использовать библиотеки и функциональные возможности, которым требуется генерировать машинный код на лету.

Для использования этих API не требуется удерживать глобальную блокировку интерпретатора (GIL).

int PyUnstable_PerfMapState_Init(void)
Это нестабильный API. Он может измениться без предупреждения в минорных выпусках.

Открывает файл /tmp/perf-$pid.map, если он ещё не открыт, и создаёт блокировку, чтобы обеспечить потокобезопасную запись в файл (при условии, что запись выполняется с помощью PyUnstable_WritePerfMapEntry()). Обычно вызывать эту функцию явно не нужно: достаточно использовать PyUnstable_WritePerfMapEntry(), и при первом вызове она инициализирует состояние.

Возвращает 0 в случае успеха, -1, если не удалось создать или открыть файл карты perf, или -2, если не удалось создать блокировку. Проверьте errno, чтобы узнать причину сбоя.

int PyUnstable_WritePerfMapEntry(const void *code_addr, unsigned int code_size, const char *entry_name)
Это нестабильный API. Он может измениться без предупреждения в минорных выпусках.

Записывает одну запись в файл /tmp/perf-$pid.map. Эта функция потокобезопасна. Пример записи:

# address      size  name
7f3529fcf759 b     py::bar:/run/t.py

Перед записью вызовет PyUnstable_PerfMapState_Init(), если файл карты perf ещё не открыт. Возвращает 0 в случае успеха или те же коды ошибок, что и PyUnstable_PerfMapState_Init(), в случае сбоя.

void PyUnstable_PerfMapState_Fini(void)
Это нестабильный API. Он может измениться без предупреждения в минорных выпусках.

Закрывает файл карты perf, открытый функцией PyUnstable_PerfMapState_Init(). Эта функция вызывается самой средой выполнения при завершении работы интерпретатора. Как правило, нет причин вызывать её явно, за исключением особых случаев, например при создании процесса с помощью fork.

© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/c-api/perfmaps.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API