Performance Measurement
性能改善の判断はoptimizeを正本とする。本skillは、profiler/APM/benchmark/load testを実行して再現可能なbaselineとbefore/afterを取る作業に限定する。
使用条件
- userがprofiling、benchmark、load test、APM分析を明示的に求めた
optimizeで計測対象が確定し、実測作業を独立させる価値がある
何を最適化すべきか未確定なら、先にoptimizeで対象と指標を決める。
原則
- 同一条件のbefore/afterを比較する
- 平均だけでなく、対象に応じてdistribution、tail、throughput、memory、CPU、I/O等を見る
- profilerやproject標準toolを優先し、手計装は自動計測で見えない区間に限定する
- 1回の偶然値を結論にしない
- 計測toolや設定自体のoverheadを考慮する
- 効果がない変更を残さない
進め方
- 対象scenarioと改善したいmetricを固定する
- projectの既存benchmark/profiler/APM設定を確認する
- baselineを再現可能な条件で取得する
- hotspotまたは支配要因を特定する
- 変更後に同じ条件で再計測する
- 差分、ばらつき、未確認要因を報告する
出力
Scenario:
Metric:
Environment:
Baseline:
Hotspot:
After:
Delta:
Confidence / variance:
Remaining uncertainty:
禁止事項
- baselineなしの改善率報告
- 1回計測だけで結論を出す
- projectで使われているtoolを確認せず別toolを追加する
- profilerが十分な場面で不要な計装codeを追加する
- 計測結果がないのに改善したと報告する