每个程序员都应该知道的一些时间数据
2018-04-23 本文已影响68人
专职跑龙套
操作 | 时间(纳秒) |
---|---|
L1 cache reference L1缓存查询 | 0.5 |
Branch mispredict 转移、分支预测 | 5 |
L2 cache reference L2缓存查询 | 7 |
Mutex lock/unlock 互斥锁\解锁 | 25 |
Main memory reference 主存访问 | 100 |
Compress 1KB bytes with Zippy 1k字节压缩Zippy | 3,000 |
Send 2K bytes over 1 Gbps network 在1Gbps的网络上发送2k字节 | 20,000(20微秒) |
Read 1MB sequentially from memory 从内存顺序读取1MB | 250,000 (250微秒) |
Roundtrip within same datacenter 同一个数据中心往返 | 500,000(0.5毫秒) |
Read 1 MB sequentially from SSD 从SSD顺序读取1MB | 1,000,000(1毫秒) |
Disk seek 磁盘寻址 | 10,000,000(10毫秒) |
Read 1MB sequentially from disk 从磁盘里面读出1MB | 20,000,000(20毫秒) |
Send packet CA -> Netherlands -> CA 发送数据包 | 150,000,000(150毫秒) |
基于上述数字的指标:
- 从磁盘以 30 MB/s 的速度顺序读取
- 从 SSD 以 1 GB/s 的速度读取
- 以 4 GB/s 的速度从主存读取
- 以 100 MB/s 从 1 Gbps 的以太网顺序读取
- 每秒能绕地球 6-7 圈
- 数据中心内每秒有 2,000 次往返