系统设计时需要考虑计算机运行时的系统时延,下表列出了一些常用的时延,用以在估算系统性能时作为估算的参考。
操作 | 耗时 |
---|---|
查询 L1 cahe | 0.5 ns |
分支预测错误 | 5 ns |
查询 L2 cahe | 7 ns |
互斥锁定/解锁 | 100 ns |
查询内存 | 100 ns |
用 zippy 压缩 1kb 数据 | 10,000 ns = 10 us |
通过带宽为 1Gb/s 的网络发送 2kb 数据 | 20,000 ns = 20 us |
从内存中顺序读取 1mb 数据 | 250,000 ns = 250 us |
数据在同一数据中心往返一次 | 500,000 ns = 500 us |
从硬盘中查找数据(非固态) | 10,000,000 ns = 10 ms |
从网络中顺序读取 1mb 数据 | 10,000,000 ns = 10 ms |
从硬盘中顺序读取 1mb 数据 | 30,000,000 ns = 30 ms |
将数据包从加州发到荷兰再返回加州 | 150,000,000 ns = 150 ms |
时延也会随着时间的变化系统的进步而变化,这个网站有个动态显示的页面,更新到 2020 年。