如何在 bazel build 中获取每个规则的时间成本
how to get each rule's time cost in bazel build
我想获取执行 bazel 构建时每条规则所花费的时间。
我在 bazel 中找到 aspect,使用该功能我可以在日志文件中打印每个规则的完成时间。
但是我发现规则的某些方面在规则执行之后执行,因此当规则开始执行时我无法获得。
那么有什么方法可以在规则执行之前对其进行扩展吗?
Bazel 内置了 performance profiling,它提供了很多细节。 运行 使用 --profile=/tmp/profile.gz
构建,然后将生成的文件加载到任何 Chrome 实例中的 chrome://tracing
中。你会得到这样的东西(来自文档):
请注意,由于 bazelbuild/bazel#12965,您可能需要在加载到 Chrome 之前手动解压缩它。
如果您想自己编写一个工具来分析它,profile file format 也有文档。
我想获取执行 bazel 构建时每条规则所花费的时间。 我在 bazel 中找到 aspect,使用该功能我可以在日志文件中打印每个规则的完成时间。
但是我发现规则的某些方面在规则执行之后执行,因此当规则开始执行时我无法获得。
那么有什么方法可以在规则执行之前对其进行扩展吗?
Bazel 内置了 performance profiling,它提供了很多细节。 运行 使用 --profile=/tmp/profile.gz
构建,然后将生成的文件加载到任何 Chrome 实例中的 chrome://tracing
中。你会得到这样的东西(来自文档):
请注意,由于 bazelbuild/bazel#12965,您可能需要在加载到 Chrome 之前手动解压缩它。
如果您想自己编写一个工具来分析它,profile file format 也有文档。