Bazel 0.10.0:如何生成chrome://tracing/可解析的构建耗时追踪文件?
解决Bazel构建耗时分析文件兼容Chrome Tracing的问题
问题根源
你使用的Bazel版本(0.10.0)过于老旧:
--experimental_generate_json_trace_profile参数在该版本中尚未引入,因此会出现未识别错误;- 该版本
--profile生成的是二进制格式的profile文件,并非Chrome Tracing支持的JSON Trace格式,所以无法直接在chrome://tracing/中展示。
解决方案
方案1:升级Bazel到较新版本(推荐)
从Bazel 0.20.0版本开始,生成Chrome Tracing兼容的JSON文件的功能已正式支持:
- 直接生成JSON Trace文件:运行构建命令时添加对应参数,生成的文件可直接导入
chrome://tracing/
注:部分中间版本可能仍需保留bazel build //你的目标路径:目标名 --generate_json_trace_profile=trace.jsonexperimental前缀,即--experimental_generate_json_trace_profile=trace.json - 转换现有profile文件:如果已经用
--profile生成了.gz文件,可通过convert-profile命令转成Chrome Tracing格式bazel build //你的目标路径:目标名 --profile=profile.gz bazel convert-profile profile.gz trace.json --format=chrome-trace
方案2:在Bazel 0.10.0中处理(仅临时应急)
由于旧版本缺乏原生转换工具,你可以:
- 先通过
bazel analyze-profile profile.gz获取文本格式的耗时分析数据; - 自行编写脚本将文本数据转换成Chrome Tracing所需的JSON格式。
但这种方式步骤繁琐且易出错,优先推荐升级Bazel版本。
内容的提问来源于stack exchange,提问作者GuangJun Liu
相关产品推荐
相关产品推荐

