Repolode
google

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. 1

    Установите комплект для разработки на Go и Graphviz (необязательно, для графического вывода)

  2. 2

    Соберите и установите pprof с помощью Go

    go install github.com/google/pprof@latest
  3. 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 обновляется ежедневно.

Похожие проекты

Низкоуровневый по накладным расходам сэмплирующий профилировщик Java: собирает профили CPU, аллокаций, блокировок и нативной памяти без смещения safepoint.

9,2 тыс.+8 за неделю994C++Apache-2.0Активно поддерживаетсяОбновлён вчера

Платформа непрерывного профилирования: собирает профили CPU, памяти и I/O работающих приложений и помогает найти медленный код вплоть до конкретной строки.

11,7 тыс.834GoAGPL-3.0Активно поддерживаетсяОбновлён 5 часов назад