如何使用 Bencher 追踪基准测试
追踪你的基准最简单的方法就是 bencher run
命令行子命令。
对于更深入的解释,请查看 基准测试概览。
下面是一个bencher run
命令行子命令的示例,用于追踪在一个合适命名为feature-branch
的功能分支上的基准:
bencher run \
--project save-walter-white \
--token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjbGllbnQiLCJleHAiOjE2NzQwNjA3NTAsImlhdCI6MTY3MTQ2ODc1MCwiaXNzIjoiYmVuY2hlci5kZXYiLCJzdWIiOiJzYXVsQGJldHRlcmNhbGxzYXVsLmNvbSIsIm9yZyI6bnVsbH0.CABcvWlPobAHs7wsdR6wX5p0R2jaCd7RmpsnMp5pwEc \
--adapter json \
--if-branch feature-branch \
--else-if-branch main \
--else-branch \
--testbed phoenix \
--err \
"bencher mock"`
- 项目必须已经存在。设置
--project
标志或者BENCHER_PROJECT
环境变量为项目的简写或 UUID。(例如:--project save-walter-white
) - API 令牌必须已经存在。设置
--token
标志或者BENCHER_API_TOKEN
环境变量为 API 令牌。(例如:--token ...
) - 选择设置: 设置
--adapter
标志或BENCHER_ADAPTER
环境变量为所需的适配器名称。如果没有设置则会使用magic
适配器。查看 基准测试马具适配器 获得全部概览。(例如:--adapter json
) - 有多种方式可以设置项目分支。查看 分支选择 获得全部概览。
- 使用已经存在的当前分支。(例如:
--if-branch feature-branch
) - 如果目标分支已经存在则创建一个目标分支数据的副本。(例如:
--else-if-branch main
) - 否则,使用
--if-branch
提供的名称创建新分支,这里会是feature-branch
。 (例如:--else-branch
)
- 使用已经存在的当前分支。(例如:
- 选择设置: 设置
--testbed
标志或者BENCHER_TESTBED
环境变量为 Testbed 的简写或者 UUID。Testbed 必须已经存在。如果没有设置,那么默认的localhost
Testbed 将会被使用。(例如:--testbed phoenix
) - 如果生成一个警告就让命令执行失败。为了警告被生成,一项 阈值 必须已经存在。(例如:
--err
) - 运行你的基准并从结果中生成一份报告。(例如:
"bencher mock"
)
相对基准
相对基准在两个提交旁边互相对比运行。
这在处理有噪音的 CI/CD 环境时非常有用,
运行中所可用资源在不同的运行间可能变化很大。
下面是一个bencher run
命令行子命令的示例,用于在一个合适命名为feature-branch
的功能分支上执行相对基准:
git checkout feature-branch
export FEATURE_BRANCH=feature-branch-$(git rev-parse --short HEAD)
git checkout main
bencher run \
--if-branch "$FEATURE_BRANCH" \
--else-branch \
--iter 3 \
"bencher mock"
git checkout feature-branch
bencher threshold create \
--metric-kind latency \
--branch "$FEATURE_BRANCH" \
--testbed localhost \
--test t \
--right-side 0.95
bencher run \
--if-branch "$FEATURE_BRANCH" \
--iter 3 \
--fold min \
--err \
"bencher mock"
- 检出功能分支。(例如:
feature-branch
) - 创建一个环境变量,将功能分支的名称和短的 git 提交 ID 连接起来。这是重要的!它保证了每次运行都会创建一个新的分支。
- 检出目标分支。(例如:
main
) - 对目标分支运行
bencher run
:- 给定的分支将不存在。(例如:
--if-branch "$FEATURE_BRANCH"
) - 因此,它会被创建。(例如:
--else-branch
) - 运行基准三次。(例如:
--iter 3
)
- 给定的分支将不存在。(例如:
- 检出功能分支。(例如:
feature-branch
) - 为功能分支创建一个 阈值:
- 基准的度量为延迟。(例如:
--metric-kind latency
) - 分支是功能分支和添加的 git 提交 ID。(例如:
--branch "$FEATURE_BRANCH"
) - Testbed 在本地运行。(例如:
--testbed localhost
) - 指标少于30,使用一个 Student’s t-检验。(例如:
--test t
) - 设置一个 95.0% 的右边界,因为更大的延迟表示表现出回退。(例如:
--right-side 0.95
)
- 基准的度量为延迟。(例如:
- 对功能分支运行
bencher run
:- 分支将存在,因为刚刚被创建。(例如:
--if-branch "$FEATURE_BRANCH"
) - 运行测试三次。(例如:
--iter 3
) - 将所有三个度量内折为最小值。(例如:
--fold min
) - 如果 阈值 生成了警告则让命令执行失败。(例如:
--err
)
- 分支将存在,因为刚刚被创建。(例如:
🐰 恭喜!你已经学会了如何使用 Bencher 追踪基准测试!🎉
添加 Bencher 到 GitHub Actions ➡
添加 Bencher 到 GitLab CI/CD ➡
🤖 该文档由 OpenAI GPT-4 自动生成。 它可能不准确并且可能包含错误。 如果您发现任何错误,请在 GitHub 上提出问题.