Repolode
flamegraph-rs

flamegraph-rs/flamegraph

Генератор flamegraph на Rust для профилирования проектов Cargo и любых бинарных файлов с помощью perf, xctrace или dtrace/blondie — без Perl.

Звёзды
6,053
Форки
194
Открытые issues
75
Последний коммит
5 дней назад

Что это?

flamegraph строит flamegraph, показывающий, на что программа тратит время. Он работает с проектами Cargo через подкоманду cargo flamegraph, а также позволяет профилировать любой бинарный файл или уже запущенный процесс по PID. Стековые сэмплы собираются с помощью системного инструмента платформы, а затем преобразуются в интерактивный SVG на базе библиотеки Inferno.

Инструмент работает в Linux с perf, в macOS с xctrace, а в Windows — с библиотекой blondie или DTrace, если он установлен. Можно выбрать профиль сборки, бинарный файл, пример, цель для бенчмарка или теста, частоту сэмплирования, цветовую палитру, а также задать собственные команды perf или dtrace.

В README также есть руководство по чтению flamegraph и заметки об измерении производительности, в том числе о методе USE и о том, почему перед оптимизацией стоит провести бенчмаркинг.

Ключевые возможности

  • 01Профилирует проекты Cargo, бинарные файлы, примеры, бенчмарки и тесты через cargo flamegraph.
  • 02Подключается к запущенным процессам по PID.
  • 03Использует perf в Linux, xctrace в macOS, а в Windows — blondie или DTrace.
  • 04Создаёт интерактивный SVG, который можно открыть в браузере.
  • 05Поддерживает пользовательские параметры команд perf и dtrace и несколько цветовых палитр.
  • 06Предоставляет автодополнение для бинарного файла flamegraph в bash, fish, zsh, powershell и elvish.

Сценарии использования

  • Поиск горячих функций в приложении на Rust перед его оптимизацией.
  • Профилирование бинарного файла на C или C++ без установки Perl и ручной сборки конвейеров.
  • Сравнение того, на что уходит время при запуске бенчмарка или тестов.
  • Профилирование уже работающего сервиса путём подключения к его процессу по ID.

Быстрый старт

  1. 1

    Установите бинарные файлы flamegraph с помощью Cargo

    cargo install flamegraph
  2. 2

    Профилируйте проект на Rust

    cargo flamegraph
  3. 3

    Профилируйте произвольный бинарный файл

    flamegraph -- /path/to/binary

Что важно знать

  • Для профилирования требуются инструменты платформы: perf в Linux, xctrace в macOS и blondie или dtrace в Windows.
  • В Linux с lld (по умолчанию начиная с Rust 1.90.0) или mold необходимо добавить флаг линковщика --no-rosegment, иначе трассировки стека могут быть неточными.
  • Для использования perf без привилегий может потребоваться снизить значение perf_event_paranoid, что ослабит безопасность системы.

В подборках

Темы

Частые вопросы

Что такое flamegraph?
Генератор flamegraph на Rust для профилирования проектов Cargo и любых бинарных файлов с помощью perf, xctrace или dtrace/blondie — без Perl. flamegraph строит flamegraph, показывающий, на что программа тратит время. Он работает с проектами Cargo через подкоманду cargo flamegraph, а также позволяет профилировать любой бинарный файл или уже запущенный процесс по PID. Стековые сэмплы собираются с помощью системного инструмента платформы, а затем преобразуются в интерактивный SVG на базе библиотеки Inferno.
flamegraph можно использовать бесплатно? Какая у него лицензия?
flamegraph распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
flamegraph всё ещё поддерживается?
Активно поддерживается. Последний коммит в flamegraph — 2 нояб. 2026 г..
Для чего можно использовать flamegraph?
Поиск горячих функций в приложении на Rust перед его оптимизацией. Профилирование бинарного файла на C или C++ без установки Perl и ручной сборки конвейеров. Сравнение того, на что уходит время при запуске бенчмарка или тестов. Профилирование уже работающего сервиса путём подключения к его процессу по ID.
Как установить flamegraph?
Установите бинарные файлы flamegraph с помощью Cargo: cargo install flamegraph Профилируйте проект на Rust: cargo flamegraph Профилируйте произвольный бинарный файл: flamegraph -- /path/to/binary
Где скачать flamegraph?
Исходный код и инструкции по установке — на GitHub: https://github.com/flamegraph-rs/flamegraph

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

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

Альтернатива диспетчеру задач для Windows и Linux с подробной информацией о процессах: потоками, памятью, дескрипторами, сокетами и модулями.

3,8 тыс.+6 за неделю303CGPL-3.0Активно поддерживаетсяОбновлён 26 дней назад