# memory: instinct-timing-ratio-tests-flake-under-contention

時間比でオーダーを測るテストは、別時刻の2点を比べる限り負荷並走で偽陽性になる。赤を見たらまず単独再実行で切り分ける。

## ポイント
- 時間比でオーダーを測るテストは、別時刻の2点を比べる限り負荷並走で偽陽性になる
- 赤を見たらまず単独再実行で切り分ける
- 同じコード・同じホストで単独実行すると3/3 PASS
- 負荷が引いた後の全体実行でも205 passed
- 犯人は並走させていた自分の8MBライブプローブだった
- smallとlargeを別々の時刻に計測しているので、その間に負荷が変動すると比が実際のオーダーと無関係に動く
- max(small_sec, 0.005)の下駄は「小さすぎる計測」対策であって、負荷変動そのものは吸収しない
- 性能テストが赤くなったら、まず単独で3回再実行して切り分ける
- 自分でベンチを書く時はbest-of-Nの最小値を採る
- 閾値を緩める方向で直さない
- 実害は偽陽性だが、赤が信用できなくなると本物の退行が見逃される
- 赤の側のオオカミ少年として扱う

## 関連ページ
[[instinct-zero-duration-means-no-work-happened]]

## 関連概念(未作成)
`時間比テストの精度向上` `負荷変動へのテストの耐性`