プログラマーが知っておくべき遅延の数

ディレクトリ

コンピュータが命令を実行するのにかかる時間、メモリからワードをフェッチするのにかかる時間(キャッシュがヒットするかどうか)、ディスクから連続したワードを読み取るのにかかる時間、およびディスクを見つけるのにかかる時間

2001年

さまざまな操作の時間は、2001年夏の1GHzパーソナルコンピュータの標準的な構成に基づいています。

運営 時間
単一の命令を実行する 1ナノ秒
L1キャッシュから単語を取得する 2ナノ秒
内から単語にアクセスする 10 ns
ディスクから連続して1ワードを取得 200 ns
ディスクのアドレス指定とフェッチ 8ミリ秒

一般的なPCでのさまざまな操作のおおよそのタイミング:

操作 時間
典型的な命令を実行する 1 / 1,000,000,000秒= 1ナノ秒
L1キャッシュメモリからフェッチ 0.5ナノ秒
ブランチの予測ミス 5ナノ秒
L2キャッシュメモリからフェッチ 7ナノ秒
ミューテックスのロック/ロック解除 25ナノ秒
メインメモリからフェッチ 100ナノ秒
1Gbpsネットワークで2Kバイトを送信する 20,000ナノ秒
メモリから1MBを順次読み取ります 250,000ナノ秒
新しいディスクの場所からフェッチ(シーク) 8,000,000ナノ秒
ディスクから1MBを順次読み取ります 20,000,000ナノ秒
パケットUSをヨーロッパに送り返します 150ミリ秒= 150,000,000ナノ秒

一般的なPCでのさまざまな操作のおおよその時間:

運営 時間
一般的な手順を実行する 1 / 1,000,000,000秒= 1ナノ秒
一次キャッシュからデータを読み取る 0.5ナノ秒
分岐予測エラー 5ナノ秒
二次キャッシュからデータを読み取る 7ナノ秒
相互に排他的なロック/ロック解除 25ナノ秒
メインメモリからデータを読み取る 100ナノ秒
1Gbpsネットワークで2Kバイトを送信する 20,000ナノ秒
メモリから1MBのデータを順次読み取ります 250,000ナノ秒
新しいディスクの場所(場所)からデータを読み取る 8,000,000ナノ秒
ディスクから1MBのデータを順次読み取ります 20,000,000ナノ秒
米国のヨーロッパに荷物を送り返送する 150ミリ秒= 150,000,000ナノ秒

1985〜2015

1985年から2015年まで、ハードウェア機器の進歩に伴い、アクセス遅延の変化

ディスク、DRAM、CPU速度のギャップ

図1:ディスク、DRAM、CPU速度のギャップ

2020

すべてのプログラマーが知っておくべき待ち時間の数

図2:すべてのプログラマーが知っておくべき待ち時間の数

参考資料

徐Yu-は十年プログラミングを学びます

王ダメモリとキャッシュ

Peter Norvigがプログラミングを10年で教える

コンピュータシステム:プログラマの視点、3 / E(CS:APP3e)図6.16:ディスク、DRAM、およびCPU速度のギャップ。

すべてのプログラマーが知っておくべき Colin Scottの待ち時間の数

ウィキペディアハードディスクドライブのパフォーマンス特性

おすすめ

転載: www.cnblogs.com/clipboard/p/12723753.html