付録Aナプキン計算用のレイテンシー

別のレベルで最適化を設計・評価するためには、コンピューターとのやり取りで目にする基本的な操作のレイテンシーを概算で把握できることが有効です。

これらの数字のいくつかを覚えておくのは良いことですが、もし覚えていない方のために、 表 A-1 におおよその、丸められた平均レイテンシーを示すちょっとした表を用意しました。 これは Simon Eskildsen の napkin-math リポジトリ に大きく触発されたもので、少し修正を加えています。

リポジトリは2021年に作成されました。 CPUベースの運用では、Xeonファミリーのサーバー用のx86 CPUがベースになっています。 なお、状況はまだ毎年改善されていますが、 「1.2.3 ハードウェアの高速化・低価格化」 で説明した制限により、ほとんどの数値は2005年から安定しています。 CPU関連のレイテンシーは、さまざまなCPUアーキテクチャ(たとえばARM)でも異なる場合があります。

最後に、たとえばディスクの書き込みや読み込みのレイテンシーなど、これらの数値はマイクロスケールでは再現できないことが多いことを覚えておいてください。 新しいバージョンのオペレーティングシステムやドライバーを搭載した新しいPC、サーバー、ラップトッププロバイダー(アップルなど)は、ディスクキャッシュに関して、広範囲にわたって性能を高める素晴らしい工夫をしています。 大容量のRAMと組み合わさった場合、SSDやHDDの「遅い」レイテンシーを、1つのファイル(数MBのファイルでも)を読み込むというようなマイクロベンチマークで再現するには、多少の努力が必要になります。 さらに、一部のデバイスには、書き込みと読み込みを複数のディスクに分割してレイテンシーの問題を軽減するハードウェアRAIDが組み込まれています。 ...