如何在持续集成中包含谷歌基准
Posted
技术标签:
【中文标题】如何在持续集成中包含谷歌基准【英文标题】:How to include google benchmark in continuous integration 【发布时间】:2017-10-15 07:38:06 【问题描述】:我喜欢在持续集成环境中包含google benchmark 测试。
如何检查被测代码是否比以前慢? 我必须手动处理基准的 json 输出吗?
有没有一种优雅的方法来计算不同的机器?
有没有一种优雅的方法来检查同一台机器上的每个构建的性能?有没有比编写 bash 脚本并将实际性能的输出与参考性能进行比较更好的方法?
有一个类似的question,但没有很好的答案。
有没有办法将它集成到 Jenkins 中。
【问题讨论】:
万一你还在找方法:你试过compare_bench.py tool 【参考方案1】:为了在 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 时间一起显示,当时只有其中一个。
【讨论】:
【参考方案2】:使用this python 工具可以自动评估谷歌基准测试,从而将它们集成到一个持续集成工具中
感谢@MikeVanDyke 的提示。
【讨论】:
您能详细说明一下吗?特别是当一个新的 git 提交导致性能下降时,我希望 CI 触发一个警告,甚至阻止新的提交被合并。这可能吗? 我想知道如何使用compare.py
来比较基本提交版本和您的提交版本之间的性能?以上是关于如何在持续集成中包含谷歌基准的主要内容,如果未能解决你的问题,请参考以下文章