【发布时间】:2021-08-09 15:01:08
【问题描述】:
我想在执行 bazel 构建时获取每条规则所花费的时间。 我在 bazel 中找到了aspect,使用该功能我可以在日志文件中打印每个规则的完成时间。
但是我发现在规则执行之后执行规则的方面,当规则开始执行时我无法获得。
那么有没有办法在规则执行之前扩展它?
【问题讨论】:
标签: bazel bazel-rules bazel-aspect
我想在执行 bazel 构建时获取每条规则所花费的时间。 我在 bazel 中找到了aspect,使用该功能我可以在日志文件中打印每个规则的完成时间。
但是我发现在规则执行之后执行规则的方面,当规则开始执行时我无法获得。
那么有没有办法在规则执行之前扩展它?
【问题讨论】:
标签: bazel bazel-rules bazel-aspect
Bazel 有内置的performance profiling,它提供了很多细节。使用--profile=/tmp/profile.gz 运行您的构建,然后将生成的文件加载到任何Chrome 实例中的chrome://tracing。你会得到这样的东西(来自文档):
请注意,由于bazelbuild/bazel#12965,您可能需要在加载到 Chrome 之前手动解压缩它。
如果您想编写一个工具来自己分析它,profile file format 上也有文档。
【讨论】: