ninjatracing README

The project's README from github.com/nico/ninjatracing. As one markdown file: README.md.

ninjatracing

Convert .ninja_log files to chrome's about:tracing format.

To view traces, either open about:tracing in chrome, or use https://www.speedscope.app/ or https://ui.perfetto.dev/.

Idea from Nick Carter, initial implementation from Richard Smith.

$ ./ninjatracing
Converts one (or several) .ninja_log files into chrome's about:tracing format

Usage:
    ninja -C $BUILDDIR
    ninjatracing $BUILDDIR/.ninja_log > trace.json

By default this will show build timing results for the most recent (possibly
incremental) build. To show build timing results for every target, whether
built in the last build or previously, use --showall. Note that this will
overlap multiple builds and will thus exaggerate build parallelism.

(When using --showall, ideally rm $BUILDDIR/.ninja_log and do a clean build.
If you don't have time for a clean build, at least run
`ninja -C $BUILDDIR -t recompact` first to remove no-longer-built targets.)

The results can be converted from .json format to .html format, for easier
loading into about:tracing, using trace2html from:
https://github.com/catapult-project/catapult/blob/master/tracing/bin/trace2html

ninjatracing (nico/ninjatracing)

Searching Database…

Что это?ninjatracing преобразует файлы журнала сборки .ninja_log, создаваемые системой сборки Ninja, в формат JSON для about:tracing браузера Chrome, чтобы можно было увидеть на временной шкале, сколько занял каждый шаг сборки.
Это приложение с графическим интерфейсом или просто скрипт для запуска из терминала?Это небольшой однофайловый консольный скрипт, а не библиотека или GUI-приложение — вы указываете ему каталог сборки Ninja, и он печатает JSON в stdout.
Как сгенерировать и посмотреть трассировку?Соберите проект с помощью Ninja, затем выполните 'ninja -C $BUILDDIR; ninjatracing $BUILDDIR/.ninja_log > trace.json' и откройте полученный JSON-файл в about:tracing браузера Chrome (или конвертируйте его с помощью trace2html).
Нужно ли что-то ещё, кроме Ninja?Нужна сборка на базе Ninja, чтобы существовал файл .ninja_log, а также просмотрщик about:tracing в Chrome (или инструмент trace2html), чтобы реально посмотреть вывод.
Что произойдёт, если использовать флаг --showall?--showall показывает время для всех целей, которые когда-либо собирались, а не только для последней сборки; из-за наложения нескольких сборок степень параллелизма выглядит преувеличенной.
Что такое просмотрщик about:tracing в Chrome?Это встроенный в Chrome просмотрщик временных шкал и трассировок, изначально созданный для профилирования самого браузера; вывод JSON от ninjatracing напрямую с ним совместим.
Для чего нужен trace2html?trace2html — это отдельный инструмент, который конвертирует трассировку .json в автономный файл .html, чтобы можно было посмотреть временную шкалу без открытия chrome://tracing.
Creator
nico
Size
0.1 MB
Stars
530
Updated
CommitJan 31
Age
12y
Commits · 90 Days