摘自知乎 让 CPU 告诉你硬盘和网络到底有多慢
先来看看 CPU 的速度,就拿我的电脑来说,主频是 2.6G,也就是说每秒可以执行 2.6*10^9个指令,每个指令只需要 0.38ns(现在很多个人计算机的主频要比这个高,配置比较高的能达到 3.0G+)。我们把这个时间当做基本单位 1s,因为 1s 大概是人类能感知的最小时间单位。
耗时部件 | 耗费的时间数据 | 换算为秒(以2.6GHzCPU一条指令执行时间为 1s 标准) |
---|---|---|
2.6GHz CPU下一条指令 | 0.38ns | 1s |
一级缓存 | 0.5ns | 1.3s |
分支预测错误 | 5ns | 13s |
二级缓存 | 7ns | 18.2s |
互斥锁的加锁与解锁 | 25ns | 65s |
内存寻址 | 100ns | 260s |
CPU上下文切换(时间片切换) | 1500ns | 65min |
1Gbps网络传输 2K数据 | 20us | 14.4h |
SSD随机读取(固态硬盘) | 150us | 4.5d |
内存读取1MB的连续数据 | 250us | 7.5d |
同一个数据中心一个来回 | 0.5ms | 15d |
ssd读取1MB的顺序数据 | 1ms | 30d |
磁盘寻址时间(机械硬盘) | 10ms | 10 Month |
磁盘读取1MB连续数据 | 20ms | 20 Month |
从世界上不同城市网络走一个来回 | 150ms | 12.5 year |
虚拟机重启 | 4s | 333 year |
物理服务器重启 | 5 min | 24975 year |