如何在持续集成中包含 google 基准

How to include google benchmark in continuous integration

我喜欢在持续集成环境中包含 google benchmark 测试。

如何检查被测代码是否没有变得比以前慢? 我是否必须手动处理基准测试的 json 输出?

是否有一种优雅的方式来计算不同的机器?

有没有一种优雅的方法来检查同一台机器上的每个构建的性能?有没有比编写 bash 脚本并将实际性能的输出与参考性能的输出进行比较更好的方法?

已经有类似的question,但是没有很好的答案。

有没有办法将其集成到 Jenkins 中。

使用 this python 工具可以自动评估 google 基准测试,从而将它们集成到持续集成工具中

谢谢@MikeVanDyke 的提示。

为了在 Jenkins 中集成 Google Benchmark,我使用了这个简洁的插件:

https://plugins.jenkins.io/benchmark

我有测试输出 .json 个文件

benchmarks.exe --benchmark_out=benchmarktest_output.json

并为插件编写了自定义 JSON 架构以理解输出:

{
  "description": "Google Benchmark JSON schema",
  "failure": { "value": true },
  "type": "object",
  "properties": {
    "benchmarks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": { "type": "name" },
          "real_time": { "type": "result" },
          "cpu_time": { "type": "result" },
          "iterations": { "type": "parameter" }
        }
      }
    }
  }
}

虽然我无法在插件中显示所有输出。例如,我还没有想出如何将时间单位与真实时间和 cpu 时间一起显示,当时只显示其中之一。