在计算机世界中,单个 CPU 周期的时间是极为短暂的。它以纳秒为单位。为了让这些微小的时间单位变得更加直观,我们可以通过将 1 个 CPU 周期的 0.3 纳秒等比例放大为现实生活中的 1 秒,构建一个假想的时间系统。通过这种方式,我们可以更好地理解从 L 1 缓存访问到物理系统重启等各种计算机操作的延迟。
事件 | 延时 | 相对时间比例 |
---|---|---|
1 个 CPU 周期 | 0.3 ns | 1 s |
L 1 缓存访问 | 0.9 ns | 3 s |
L 2 缓存访问 | 3 ns | 10 s |
L 3 缓存访问 | 10 ns | 33 s |
主从访问(从 CPU 访问 DRAM) | 100 ns | 6 分 |
固态硬盘 I/O(闪存) | 10-100 微秒 | 9-90 小时 |
旋转磁盘 I/O | 1-10 ms | 1-12 月 |
互联网:从旧金山到纽约 | 40 ms | 4 年 |
互联网:从旧金山到英国 | 81 ms | 8 年 |
轻量级硬件虚拟化重启 | 100 ms | 11 年 |
互联网:从旧金山到澳大利亚 | 183 ms | 19 年 |
操作系统虚拟化系统重启 | <1 s | 105 年 |
基于 TCP 定时器到重传 | 1-3 s | 105-317 年 |
SCSI 命令超时 | 30 s | 3 千年 |
硬件虚拟化系统重启 | 40 s | 4 千年 |
物理系统重启 | 5 m | 32 千年 |
正如你所见,1 个 CPU 周期的时间是很短暂的。0.5 米差不多是你的眼睛到这个页面的距离,光线走过这段距离需要的时间大约是 1.7 ns。在这段时间里,现代的 CPU 已经执行了 5 个 CPU 周期,处理了若干个指令。