如何使用 Bencher 跟踪构建时间
Bencher 开箱即支持最流行的基准测试工具。
不过有时候,你可能想要测量构建可交付成果本身所需的时间,比如可执行文件的编译时间。
幸运的是,Bencher 也支持跟踪构建时间。
跟踪构建时间的最简单方法是使用bencher run
CLI 子命令并加上 --build-time
标志。
bencher run
的内部底层会以 Bencher Metric Format (BMF) JSON 格式输出结果。
因此,明确使用 the json
adapter 是一个好的实践。
如果您有一个位于 ./my_build_script.sh
的脚本来构建您的二进制文件,
那么您可以使用bencher run
和json
适配器来跟踪此二进制文件的构建时间。
--build-time
标志需要一个基准命令。
生成的 BMF JSON 看起来如下,
如果您的构建脚本需要 87.0
秒来完成:
请注意,基准名称为 /bin/sh -c ./my_build_script.sh
。
这是因为我们的命令只是一个单参数,
所以bencher run
默认为 shell 形式执行。
或者,如果您想强制使用 exec 形式,
可以提供多个参数或使用 --exec
标志。
如果这个 exec 形式的构建花了 86.98
秒,
那么生成的 BMF JSON 将如下所示:
现在,基准名称只是 ./my_build_script.sh
。
./my_build_script.sh
对象包含 build-time
键。
build-time
是内置构建时间度量的 slug。
构建时间度量不会为所有项目默认创建。
但是,当您使用构建时间度量时,
它将为您的项目自动创建。
构建时间度量对象包含一个指标,
其构建时间 value
以秒为单位,
在我们的示例中是 87.0
和 86.98
。
构建时间将始终四舍五入到最接近的两位小数。
也就是说,它_永远不会_是像 42.666666
这样的长小数。
跟踪文件大小
您可能希望在跟踪构建所需时间的同时,跟踪可交付成果的文件大小。
bencher run
支持同时跟踪构建时间和文件大小。
如果您的 ./my_build_script.sh
构建脚本的输出是一个位于路径 ./path/to/my_binary
的二进制文件,
那么可以使用此命令跟踪编译时间和二进制文件的大小:
如果 my_binary
的大小是 42
字节,
生成的 BMF JSON 将如下所示:
🐰 恭喜!您已学会如何跟踪构建时间!🎉