530 ·GitHub
Что это?
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.
What are similar projects?
live-panel-skill, pyinstaller, git-filter-repo, scalene, task, bazel, hey, memray
Which topics is it in?
profiling, script, chrome, build-tool, visualization, data-visualization, devops, performance, command-line-tool, terminal, tool, apache-2.0