cpu内存访问速度,磁盘和网络速度,所有人都应该知道的数字

所有人都应该知道的数字,系统操作耗时

google 工程师Jeff Dean 首先在他关于分布式系统的ppt文档列出来的,到处被引用的很多。
1纳秒等于10亿分之一秒,= 10 ^ -9 秒

Numbers Everyone Should Know

操作内容 时间
L1 cache reference 读取CPU的一级缓存 0.5ns
Branch mispredict(转移、分支预测) 5ns
L2 cache reference 读取CPU的二级缓存 7ns
Mutex lock/unlock 互斥锁\解锁 100ns
Main memory reference 读取内存数据 100ns
Compress 1K bytes with Zippy 1k字节压缩 10,000ns
Send 2K bytes over 1 Gbps network 在1Gbps的网络上发送2k字节 20,000ns
Read 1 MB sequentially from memory 从内存顺序读取1MB 250,000 ns=0.25ms
Round trip within same datacenter 从一个数据中心往返一次,ping一下 500,000ns=0.5ms
Disk seek 磁盘搜索 10,000,000ns=10ms
Read 1 MB sequentially from network 从网络上顺序读取1兆的数据 10,000,000ns=10ms
Read 1 MB sequentially from disk 从磁盘里面读出1MB 30,000,000ns=30ms
Send packet CA->Netherlands->CA 一个包的一次远程访问 150,000,000ns=150ms