每个程序员都应该知道的一些时间数据

操作 时间(纳秒)
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 次往返

引用:
Numbers Everyone Should Know
每个程序员都应该知道的一些时间数据

你可能感兴趣的:(每个程序员都应该知道的一些时间数据)