如何在 CI 中跟踪自定义 Rust 基准测试

Everett Pompeii

Everett Pompeii


现在您已经了解了如何在 Rust 中构建自定义基准测试框架,让我们来看一下如何在CI中跟踪这些基准测试。持续基准测试是对每个变更集运行基准测试的做法,以确保这些更改不会引入性能回退。使用自定义基准测试实现持续基准测试的最简单方法是使用Bencher。

什么是 Bencher?

Bencher是一套持续型的性能基准测试工具。 你是否曾经因为性能回归影响到了你的用户? Bencher可以防止这种情况的发生。 Bencher让你有能力在性能回归进入生产环境 之前 就进行检测和预防。

  • 运行: 使用你喜爱的基准测试工具在本地或CI中执行你的基准测试。bencher CLI简单地包装了你现有的基准测验设备并存储其结果。
  • 追踪: 追踪你的基准测试结果的趋势。根据源分支、测试床和度量,使用Bencher web控制台来监视、查询和绘制结果图表。
  • 捕获: 在CI中捕获性能回归。Bencher使用最先进的、可定制的分析技术在它们进入生产环境之前就检测到性能回归。

基于防止功能回归的原因,在CI中运行单元测试,我们也应该使用Bencher在CI中运行基准测试以防止性能回归。性能问题就是错误!

Bencher Cloud 的步骤

  1. 创建一个 Bencher Cloud 账户
  2. 创建一个 API 令牌,并将其作为机密添加到您的 CI 中。
  3. 为您的 CI 创建一个工作流,例如 GitHub ActionsGitLab CI/CD
  4. 在您的 CI 工作流中安装 Bencher CLI
  5. 在您的 CI 工作流中使用 bencher run 子命令运行您的基准测试,使用 这个 json 适配器

Bencher 自托管的步骤

  1. 创建一个 Bencher 自托管实例
  2. 在您的 Bencher 自托管实例上创建一个账户。
  3. 创建一个 API 令牌并将其作为密钥添加到您的 CI。
  4. 为您的 CI 创建一个工作流程,例如 GitHub ActionsGitLab CI/CD
  5. 在您的 CI 工作流程中安装 Bencher CLI。 确保 CLI 版本与您的 Bencher 自托管实例的版本匹配。
  6. 使用 bencher run 子命令在您的 CI 工作流程中运行基准测试,使用 json 适配器 并设置 --host 选项 为您的 Bencher 自托管实例的 URL。

{…} JSON

JSON 适配器(json)期望 Bencher 指标格式 (BMF) JSON。 它非常适合将自定义基准测试工具与 Bencher 集成。 有关更多详细信息,请参阅如何跟踪自定义基准测试 以及 BMF JSON 参考资料

Terminal window
bencher run --adapter json "cargo bench"

Track your benchmarks in CI

Have you ever had a performance regression impact your users? Bencher could have prevented that from happening with continuous benchmarking.

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