neuecc先生の、C#でTypeをキーにしたDictionaryのパフォーマンス比較と最速コードの実装 に記載のあった、BenchmarkDotNetが個人的に相当刺さった。なので、備忘録がてらまとめてみたいと思うのでお付き合い頂ければ幸い。 これてばなによ? 例えば、Aと言う実装と、Bと言う実装が有ってどっちが早いの?とか HogeMogeの時間的コストはどんなモノなのかみたいなとき、Stopwatchとか使ってベンチマーク取るわけだけど、実際問題 Runner(ドライバ)部分はほぼいつも一緒 オーバーヘッドの除去が面倒 サンプリングして統計か処理取るのも面倒 などなど、まぁ面倒ばっかり多くてしんどかった。 しかも環境が偏って、全く別のところで差異が出て有りもしない理由を探ったり、逆に本来有意に差が付くはずなのに付かなくて見落としたりと、まぁ面倒だし罠も多い。 で、その辺のコトをまとめ