Spec-Zone.ru › Python 3.12

Поддержка Perf Map

На поддерживаемых платформах (на данный момент только Linux) среда выполнения может использовать файлы perf map, чтобы сделать функции 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 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.12/c-api/perfmaps.html

Spec-Zone.ru

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