HN 日本語サマリー

← 一覧へ戻る
プログラミング

ミリ秒単位でのベンチマーク

Benchmark in Milliseconds (matklad.github.io)

23 pointsby surprisetalk5 コメント

要約

この記事では、マイクロベンチマークの実行時間をミリ秒単位(特に300ms程度)に調整することの利点を解説しています。ミリ秒単位は人間が認識しやすく、計算コストやオーバーヘッドの影響を最小限に抑えつつ、最適化の効果を直感的に把握するのに適していると述べています。ベンチマークの目的は厳密な測定よりも、開発者に正しい意思決定のための直感を与えることにあるとしています。

全文翻訳

マイクロベンチマークはどのくらいの時間実行すべきでしょうか?私の経験則では、以下の理由から、ベンチマークの実行時間が約300ミリ秒になるように入力サイズを調整します。 ミリ秒は1から999までの整数です。わずかな改善でも気づける十分な精度があり、視覚的にスキャンしやすいです。異なる単位や浮動小数点数(1.31秒と239ミリ秒を比較してみてください)は不要です。 例えば10ミリ秒よりも速いものは、固定コスト(例:インタプリタの起動)によって歪められるリスクがあります。数百ミリ秒はコンピュータにとっては永遠であり、通常は、それらを明示的に考慮するためのより高度な(つまり、より堅牢ではない)テクニックを使用せずに、一度きりのオーバーヘッドを無視するのに十分です。 人間にとっては、数百ミリ秒は速いですが、認識可能です。数字を人間が知覚できる範囲に押し上げることで、計算能力だけに頼るのではなく、時間と速度に対する私の直感的な感覚を使用できます。最適化作業の結果として、以前は遅かったCLIコマンドが「瞬時」になるのを見るのは純粋に楽しいです。 しかし、1秒を超えるものは、ベンチマークのイテレーションを必要以上に遅くします。変異を大まかに把握するために、ベンチマークを10回連続で実行するのは速いはずです! ここで暗黙的に述べられる仮定は、ベンチマークの目的はパフォーマンスの正確な測定というよりも、著者に正しい意思決定を行うための十分な直感を提供することです。