Об этом проекте

py-spy — это профилировщик выборки, написанный на Rust, предназначенный для анализа программ на Python с чрезвычайно низким накладным расходом. Поскольку он работает в отдельном процессе и напрямую читает память целевой программы, он безопасен для использования в производственной среде. Основные возможности включают: - **Неинтрузивное профилирование**: визуализация времени, затраченного на функции, без перезапуска программы или изменения исходного кода. - **Три основных режима**: - `record`: генерирует профили в форматах, таких как интерактивные SVG-флейм-графы или файлы speedscope. - `top`: предоставляет живой обзор высокого уровня функций, consuming the most time, аналогичный команде Unix top. - `dump`: сбрасывает текущий стек вызовов для каждого потока Python, включая необязательные локальные переменные. - **Широкая совместимость**: поддерживает Linux, OSX, Windows и FreeBSD, а также совместим с версиями CPython 2.3-2.7 и 3.3-3.14. - **Расширенные функции**: - Поддержка профилирования нативных расширений C/C++ или Cython. - Возможность профилирования субпроцессов (например, multiprocessing или пулов воркеров gunicorn). - Обнаружение GIL (Global Interpreter Lock) для фильтрации потоков, удерживающих блокировку. - Неблокирующий режим, позволяющий избежать полной приостановки целевого процесса.