Низконагрузочный семплер стеков вызовов для CPython на C, не требующий инструментирования и предназначенный для профилирования запущенных Python-процессов.
gaogaotiantian/viztracer
Низконакладной трассировщик Python, который записывает вызовы функций и показывает выполнение кода на интерактивной временной шкале.
- Звёзды
- 7,775
- Форки
- 480
- Открытые issues
- 33
- Последний коммит
- в прошлом месяце
Что это?
VizTracer отслеживает выполнение Python-кода и показывает результат на интерактивной временной шкале в браузерном просмотрщике на базе Perfetto. Временная шкала фиксирует вход и выход из каждой функции вместе с её исходным кодом — это помогает разбираться в неожиданном ходе выполнения программы и находить участки, на которые уходит время.
Большинство функций доступны без изменения исходного кода: достаточно запустить скрипт через команду viztracer или обернуть нужный участок в контекстный менеджер VizTracer, а затем открыть созданный файл result.json с помощью vizviewer. Также поддерживаются магические команды Jupyter для ячеек, запись событий PyTorch на CPU и GPU и удалённое подключение к работающим процессам.
VizTracer поддерживает threading, multiprocessing, subprocess, os.fork, concurrent.futures и asyncio. Фильтры по минимальной длительности, глубине стека и включаемым или исключаемым файлам помогают уменьшить размер трассировки. Программа работает на Linux, macOS и Windows и устанавливается через pip.
Ключевые возможности
- 01Записывает вход и выход из функций на временной шкале вместе с исходным кодом.
- 02Запускает скрипты, модули и консольные скрипты без изменения исходного кода.
- 03Поддерживает threading, multiprocessing, subprocess, asyncio и PyTorch.
- 04Предлагает фильтры по минимальной длительности, глубине стека и включению или исключению файлов.
- 05Позволяет удалённо подключаться к работающим процессам Python.
- 06Работает на Linux, macOS и Windows.
Сценарии использования
- Поиск причин неожиданного хода выполнения в многопоточной или асинхронной программе на Python.
- Выявление вызовов функций, на которые приходится основная часть времени выполнения медленного скрипта.
- Анализ выполнения моделей PyTorch, включая события GPU.
- Изучение поведения длительно работающего процесса через подключение к нему.
Быстрый старт
- 1
Установите VizTracer с помощью pip
pip install viztracer - 2
Запустите трассировку скрипта из командной строки
viztracer my_script.py arg1 arg2 - 3
Откройте созданный файл result.json в просмотрщике
vizviewer result.json
В подборках
Темы
Частые вопросы
- Что такое viztracer?
- Низконакладной трассировщик Python, который записывает вызовы функций и показывает выполнение кода на интерактивной временной шкале. VizTracer отслеживает выполнение Python-кода и показывает результат на интерактивной временной шкале в браузерном просмотрщике на базе Perfetto. Временная шкала фиксирует вход и выход из каждой функции вместе с её исходным кодом — это помогает разбираться в неожиданном ходе выполнения программы и находить участки, на которые уходит время.
- viztracer можно использовать бесплатно? Какая у него лицензия?
- viztracer распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- viztracer всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в viztracer — 26 сент. 2026 г..
- Для чего можно использовать viztracer?
- Поиск причин неожиданного хода выполнения в многопоточной или асинхронной программе на Python. Выявление вызовов функций, на которые приходится основная часть времени выполнения медленного скрипта. Анализ выполнения моделей PyTorch, включая события GPU. Изучение поведения длительно работающего процесса через подключение к нему.
- Как установить viztracer?
- Установите VizTracer с помощью pip: pip install viztracer Запустите трассировку скрипта из командной строки: viztracer my_script.py arg1 arg2 Откройте созданный файл result.json в просмотрщике: vizviewer result.json
- Где скачать viztracer?
- Исходный код и инструкции по установке — на GitHub: https://github.com/gaogaotiantian/viztracer
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Инструмент командной строки и веб-интерфейс для визуализации и анализа данных профилирования в формате profile.proto.
Генератор flamegraph на Rust для профилирования проектов Cargo и любых бинарных файлов с помощью perf, xctrace или dtrace/blondie — без Perl.
Linux-профайлер, который с помощью Intel Processor Trace записывает каждый вызов функции в процессе и показывает его на интерактивной временной шкале.
Профилировщик памяти для Python: отслеживает выделения памяти в Python-коде, нативных расширениях и интерпретаторе и формирует отчёты нескольких типов.
Построчный профилировщик Python, который показывает, сколько времени занимает выполнение каждой строки декорированной функции.