如何在持续集成中包含Google基准测试

sch*_*312 8 c++ integration benchmarking continuous jenkins

我喜欢在持续集成环境中包含谷歌基准测试.

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

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

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

有一个类似的问题,但没有很好的答案.

有没有办法将它整合到詹金斯.

谢谢你的帮助.最好的问候,乔治

jon*_*nei 4

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

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" }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但我无法显示插件中的所有输出。例如,我还没有弄清楚如何将时间单位与实际时间和CPU时间一起显示,当时只使用其中之一。