例外で分岐 は in で判定 より約 4.11 倍遅い
存在しないキーへのアクセスは、例外で受けるより `in` で判定したほうが速い、という結果です。
結果
| 実行 | 例外で分岐 | in で判定 | 倍率 |
|---|---|---|---|
| 実行 1 | 47.067 | 11.884 | 3.96× |
| 実行 2 | 49.678 | 12.101 | 4.11× |
| 実行 3 | 49.949 | 12.139 | 4.11× |
3 回のばらつき: 例外で分岐 CV 2.6% / in で判定 CV 0.9% / 倍率 CV 1.7%
測った条件
dict への 20 万回のアクセス、全件ミス(キーが存在しない)。
この数字が当てはまらない場面
ヒット率が高い場合は例外側が有利になります(例外は発生時だけコストがかかるため)。
再現コマンド
cd bench && python micro_py.py --out ../data/run.json --samples 21