530 ·GitHub
这是什么?
ninjatracing 把 Ninja 构建系统生成的 .ninja_log 构建日志文件转换成 Chrome 的 about:tracing JSON 格式,这样你就能以时间线的形式直观查看每个构建步骤花了多长时间。
这是 GUI 应用,还是我在终端里运行的脚本?
它是一个单文件的小型命令行脚本,不是库也不是 GUI 应用——你把它指向一个 Ninja 构建目录,它就把 JSON 打印到标准输出。
怎么生成和查看追踪记录?
先用 Ninja 构建你的项目,然后运行 'ninja -C $BUILDDIR; ninjatracing $BUILDDIR/.ninja_log > trace.json',并在 Chrome 的 about:tracing 中打开生成的 JSON 文件(或用 trace2html 转换)。
除了 Ninja,我还需要别的东西吗?
你需要一个基于 Ninja 的构建,让 .ninja_log 文件存在,另外还需要 Chrome 的 about:tracing 查看器(或 trace2html 工具)来实际查看输出。
使用 --showall 标志会发生什么?
--showall 会显示曾经构建过的每个目标的时间,而不仅仅是最近一次构建,这会把多次构建叠加在一起,夸大构建实际呈现出的并行程度。
Chrome 的 about:tracing 查看器是什么?
它是 Chrome 内置的时间线/追踪查看器,最初为分析浏览器本身的性能而构建,ninjatracing 的 JSON 输出与之直接兼容。
trace2html 有什么用?
trace2html 是一个单独的工具,把 .json 追踪文件转换成独立的 .html 文件,这样你无需打开 chrome://tracing 也能查看时间线。
What are similar projects?
live-panel-skill, git-filter-repo, pyinstaller, 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