Spec-Zone.ru › Python 3.13

Поддержка Perf Map

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

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

Обратите внимание, что получение глобальной блокировки интерпретатора (GIL) для этих API не требуется.

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

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

Возвращает 0 при успехе, -1 при неудаче создания/открытия файла perf map или -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 map ещё не открыт. Возвращает 0 при успехе или те же коды ошибок, что и PyUnstable_PerfMapState_Init() при ошибке.

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

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

© 2001–2024 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