2.1 了解各类延迟指标

既然目标是「足够快」,那么就需要对计算机中的「快」有个基本了解。

伯克利大学有个动态网页[1]汇总了每年计算机中各类操作耗时、延迟的变化。本节内容整理了 2020 年的数据供读者参考,如表 2-1 所示,了解这些延迟指标有助于设计和比较不同的解决方案以及评估服务质量。

表2-1 计算机中各类延迟数据参考

操作延迟
L1 缓存查询1 ns
分支预测错误(Branch mispredict)3 ns
L2 缓存查询4 ns
互斥锁/解锁17 ns
在 1Gbps 的网络上发送 2KB44 ns
主存访问100 ns
Zippy 压缩 1KB2,000 ns ≈ 2 μs
从内存顺序读取 1 MB3,000 ns ≈ 3 μs
SSD 随机读16,000 ns ≈ 16 μs
从 SSD 顺序读取 1 MB49,000 ns ≈ 49 μs
同一个数据中心往返500,000 ns ≈ 0.5 ms
从磁盘顺序读取 1 MB825,000 ns ≈ 0.8 ms
磁盘寻址2,000,000 ns ≈ 2 ms
从美国发送到欧洲的数据包150,000,000 ns ≈ 150 ms

秒(s)、毫秒(ms)、微秒 (μs)、纳秒(ns)之间关系: $$ 1s = 10{^3}ms=10{^6}μs=10{^9}ns $$


  1. 参见 https://colin-scott.github.io/personal_website/research/interactive_latency.html ↩︎

总字数:323
Last Updated:
Contributors: isno