每个程序员都应该知道的延迟数

L1 缓存 引用        ......................... 0.5 ns
分支预测错误        ............................ 5 ns
L2 缓存引用         ........................... 7 ns
互斥锁定/解锁       ........................... 25 ns
主内存引用              ...................... 100 ns
一次 CPU 上下文切换(系统调用)需要大约 ..........1500 ns
用 Zippy压缩1K字节   ............. 3,000 ns  =   3 µs
发送 2K 字节通过1Gbps内网  ....... 20,000 ns  =  20 µs
SSD 随机读取 ................... 150,000 ns  = 150 µs
从内存顺序读取1MB           ..... 250,000 ns  = 250 µs
在同一数据中心内往返        ...... 500,000 ns  = 0.5 ms
从 SSD 按顺序读取 1 MB*   ..... 1,000,000 ns  =   1 ms
磁盘检索 .................... 10,000,000 ns  =  10 ms
从磁盘按顺序读取 1 MB     .... 20,000,000 ns  =  20 ms
从世界上不同城市网络上走一个来回.150,000,000 ns  = 150 ms

 

参考

https://people.eecs.berkeley.edu/~rcs/research/interactive_latency.html
https://gist.github.com/hellerbarde/2843375

每个程序员都应该知道的延迟数
标签: