文章简介:Latency numbers every programmer should know
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns
Compress 1K bytes with Zippy ............. 3,000 ns = 3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns = 20 µs
SSD random read ........................ 150,000 ns = 150 µs
Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs
Round trip within same datacenter ...... 500,000 ns = 0.5 ms
Read 1 MB sequentially from SSD* ..... 1,000,000 ns = 1 ms
Disk seek ........................... 10,000,000 ns = 10 ms
Read 1 MB sequentially from disk .... 20,000,000 ns = 20 ms
Send packet CA->Netherlands->CA .... 150,000,000 ns = 150 ms
|
src
2001年夏天典型的1GHz PC的各种操作要花的时间
执行一条指令 |
1 nsec = (1/1,000,000,000) sec |
从L1 cache memory 中取一个字 |
2 nsec |
从内存中取一个字 |
10 nsec |
从磁盘的连续位置取一个字 |
200 nsec |
从磁盘的新位置取一个字(seek) |
8,000,000nsec = 8msec |