まず第一に、これはマイクロベンチマークの有用性についてではありません。私はそれらの目的をよく知っています。単一の側面を強調するために、非常に特殊なケースでのパフォーマンス特性と比較を示します。これがあなたの仕事に何らかの影響を与えるべきかどうかは別の話です。
数年前、誰か(Heinz Kabutz?)は、結果を確認する価値のあるすべてのベンチマークを少なくとも数分実行する必要があり、少なくとも3回実行する必要があると指摘しましたが、最初の実行は常に破棄されます。これは、JVMのウォーミングアップ、環境の不整合(バックグラウンドプロセス、ネットワークトラフィックなど)、および測定の不正確さを説明するためでした。それは私には理にかなっており、私の個人的な経験は似たようなことを示唆していたので、私は常にこの戦略を採用しました。
ただし、多くの人(たとえば、Jeff)が、数ミリ秒(!)だけ実行され、1回だけ実行されるベンチマークを作成していることに気付きました。近年、短期間のベンチマークの精度が上がっていることは知っていますが、それでも奇妙なことに思います。ある程度有用な出力を得るために、すべてのマイクロベンチマークを少なくとも1秒間実行し、少なくとも3回実行する必要がありますか?それとも、そのルールは最近廃止されていますか?