Сэмплирующий профилировщик Python-программ, который подключается к работающим процессам без изменения кода и перезапуска.
google/pprof
Инструмент командной строки и веб-интерфейс для визуализации и анализа данных профилирования в формате profile.proto.
- Звёзды
- 9,323
- Форки
- 686
- Открытые issues
- 64
- Последний коммит
- 3 дня назад
Что это?
pprof читает наборы образцов профилирования в формате profile.proto и формирует отчёты, которые помогают разработчикам понять, на что уходит время и память. Он создаёт текстовые отчёты, отсортированные по «горячим» точкам, графы вызовов в графическом виде с помощью Graphviz, а также интерактивную оболочку и веб-интерфейс для изучения профиля.
Профили можно загрузить из локального файла или получить по HTTP; несколько профилей одного типа можно объединить или сравнить. Если в профиле содержатся исходные машинные адреса, pprof может разрешить их в символы с помощью системных инструментов binutils addr2line и nm, если указать бинарный файл программы. Также pprof умеет читать файлы perf.data из Linux perf с помощью дополнительного конвертера.
Установите pprof командой go install github.com/google/pprof@latest. Graphviz необязателен и нужен только для вывода графики. Проект не является официальным продуктом Google.
Ключевые возможности
- 01Создаёт текстовые отчёты по данным профилирования, отсортированные по «горячим» точкам.
- 02Строит графы вызовов в формате SVG с помощью Graphviz.
- 03Предоставляет интерактивную командную оболочку и веб-интерфейс в браузере.
- 04Читает профили из локальных файлов или по HTTP.
- 05Объединяет или сравнивает несколько профилей одного типа.
- 06Разрешает адреса в символы с помощью addr2line и nm.
Сценарии использования
- Поиск узких мест по CPU или памяти в Go-сервисе на основе собранного профиля.
- Визуализация графа вызовов медленно работающей программы, чтобы определить, какие пути отнимают больше всего времени.
- Сравнение профилей до и после изменения кода для оценки его влияния.
- Анализ записей Linux perf, преобразованных в формат profile.proto.
Быстрый старт
- 1
Установите комплект для разработки на Go и Graphviz (необязательно, для графического вывода)
- 2
Соберите и установите pprof с помощью Go
go install github.com/google/pprof@latest - 3
Создайте текстовый отчёт профиля, отсортированный по степени активности
pprof -top [main_binary] profile.pb.gz
Что важно знать
- Для графического вывода требуется отдельно установить Graphviz.
В подборках
Темы
Частые вопросы
- Что такое pprof?
- Инструмент командной строки и веб-интерфейс для визуализации и анализа данных профилирования в формате profile.proto. pprof читает наборы образцов профилирования в формате profile.proto и формирует отчёты, которые помогают разработчикам понять, на что уходит время и память. Он создаёт текстовые отчёты, отсортированные по «горячим» точкам, графы вызовов в графическом виде с помощью Graphviz, а также интерактивную оболочку и веб-интерфейс для изучения профиля.
- pprof можно использовать бесплатно? Какая у него лицензия?
- pprof распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pprof всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pprof — 5 нояб. 2026 г..
- Для чего можно использовать pprof?
- Поиск узких мест по CPU или памяти в Go-сервисе на основе собранного профиля. Визуализация графа вызовов медленно работающей программы, чтобы определить, какие пути отнимают больше всего времени. Сравнение профилей до и после изменения кода для оценки его влияния. Анализ записей Linux perf, преобразованных в формат profile.proto.
- Как установить pprof?
- Установите комплект для разработки на Go и Graphviz (необязательно, для графического вывода) Соберите и установите pprof с помощью Go: go install github.com/google/pprof@latest Создайте текстовый отчёт профиля, отсортированный по степени активности: pprof -top [main_binary] profile.pb.gz
- Где скачать pprof?
- Исходный код и инструкции по установке — на GitHub: https://github.com/google/pprof
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Низконакладной трассировщик Python, который записывает вызовы функций и показывает выполнение кода на интерактивной временной шкале.
Низкоуровневый по накладным расходам сэмплирующий профилировщик Java: собирает профили CPU, аллокаций, блокировок и нативной памяти без смещения safepoint.
Бесплатный инструмент для Windows, который помогает выявлять проблемы с производительностью CPU и памяти, особенно в коде, работающем на .NET runtime.
Профилировщик стека вызовов Python, который показывает, на что уходит время в коде, и выводит результаты в консоль, HTML и других форматах.
Платформа непрерывного профилирования: собирает профили CPU, памяти и I/O работающих приложений и помогает найти медленный код вплоть до конкретной строки.