如何使用 Bencher 跟踪自定义基准


Bencher 默认支持最受欢迎的基准测试工具,而且我们始终欢迎建议添加新的适配器。 然而,在某些情况下,现成的基准测试工具可能无法满足您的需求, 这就需要创建自定义的基准测试工具。 幸运的是,Bencher 也支持使用自定义的基准测试工具。 将您的自定义基准测试工具与 Bencher 集成的最简单方式 是输出 Bencher Metric Format (BMF) JSON

这是一个 BMF JSON 的示例:

{
"benchmark_name": {
"latency": {
"value": 88.0,
"lower_value": 87.42,
"upper_value": 88.88
}
}
}

在此示例中,键 benchmark_name 表示 Benchmark 的名称。 Benchmark 可以通过名称、slug 或 UUID 来标识。 benchmark_name 对象可以包含多个 Measure 的名称、slug 或 UUID 作为键。 如果指定的值是名称或 slug 且该 Measure 尚不存在,则会为你创建它。 但是,如果指定的值是 UUID,那么该 Measure 必须已存在。 在此示例中,latency 是内置 Latency Measure 的 slug。 每个 Project 默认都有一个 Latency(即 latency)和一个 Throughput(即 throughput)Measure, 分别以 nanosecond (ns)operations / second (ops/s) 为单位进行度量。 Measure 对象包含一个 Metric,最多可包含三个值:valuelower_valueupper_valuelower_valueupper_value 是可选的。

在此示例中,latency Measure 对象包含以下值:

  • value 值为 88.0
  • lower_value 值为 87.42
  • upper_value 值为 88.88

如果您有一个位于 ./run/my/benchmarks.sh 的脚本,该脚本运行您的基准测试 并将结果以 BMF JSON 的形式打印到标准输出, 那么您可以使用以下命令, 通过bencher runJSON 适配器 来跟踪它们:

Terminal window
bencher run --adapter json "bencher mock"

如果你的结果被存储在一个名为 results.json 的文件中, 那么你可以使用 --file 选项来指定文件路径。 这适用于有基准测试命令的情况和没有的情况。

使用基准测试命令时:

Terminal window
bencher run --file results.json --adapter json "bencher mock > results.json"

不使用基准测试命令时:

Terminal window
bencher mock > results.json && bencher run --file results.json --adapter json

多个度量

Bencher Metric Format (BMF) JSON 中,基准测试 对象可以包含多个 度量 名称、缩略名或 UUID 作为键。 如果指定的值是名称或缩略名且该度量尚不存在,它将会为你创建。 然而,如果指定的值是 UUID,则该度量必须已经存在。 每个度量对象必须包含一个 度量指标,最多可包含三个值: valuelower_valueupper_valuelower_valueupper_value 是可选的。

这是具有多个度量的 BMF JSON 示例:

{
"benchmark_name": {
"latency": {
"value": 88.0,
"lower_value": 87.42,
"upper_value": 88.88
},
"throughput" {
"value": 5.55,
"lower_value": 3.14,
"upper_value": 6.30
}
}
}

在此示例中,latency 度量对象包含以下值:

  • value88.0
  • lower_value87.42
  • upper_value88.88

throughput 度量对象包含以下值:

  • value5.55
  • lower_value3.14
  • upper_value6.30

你可以使用 bencher mock CLI 子命令 以及 --measure 选项 来生成具有多个度量的模拟 BMF 数据。 我们将其用作你自己的自定义基准测试运行器的占位符。 使用 bencher run json 适配器 我们可以使用以下命令跟踪具有多个度量的基准测试:

Terminal window
bencher run --adapter json "bencher mock --measure latency --measure throughput"

🐰 恭喜!你已经学会了如何跟踪自定义基准!🎉


继续学习:如何在 CI 中跟踪基准 ➡

🤖 该文档由 OpenAI GPT-4/5 自动生成。 它可能不准确并且可能包含错误。 如果您发现任何错误,请在 GitHub 上提出问题.


Published: Sun, May 12, 2024 at 7:44:00 AM UTC | Last Updated: Fri, January 30, 2026 at 12:27:00 PM UTC