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