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

原文:Every Programmer Should Know These Latency Numbers

L1 cache :………………………………………………..0.5ns

branch mispredict(转移、分支预测) : ……………..5ns
L2 cache :………………………………………………… 7ns
互斥锁\解锁 :…………………………………………….. 25ns
1k字节压缩(Zippy) : …………………………………….3000ns = 3us
在1Gbps的网络上发送2k字节 : ……………………….20,000ns = 20us
SSD随机读 :……………………………………………..150,000ns = 150us
从内存顺序读取1MB :…………………………………250,000ns = 250 us
同一个数据中心往返 :………………………………….500,000ns = 0.5ms
从SSD顺序读取1MB : …………………………………1,000,000ns = 1ms
磁盘搜索:…………………………………………………..10,000,000ns = 10ms

从磁盘里面读出1MB : …………………………………..20,000,000ns = 20ms

### Latency numbers every programmer should know
    L1 cache reference ......................... 0.5 ns
    Branch mispredict ............................ 5 ns
    L2 cache reference ........................... 7 ns
    Mutex lock/unlock ........................... 25 ns
    Main memory reference ...................... 100 ns
    Compress 1K bytes with Zippy ............. 3,000 ns = 3 μs
    Send 2K bytes over 1 Gbps network ....... 20,000 ns = 20 μs
    SSD random read ........................ 150,000 ns = 150 μs
    Read 1 MB sequentially from memory ..... 250,000 ns = 250 μs
    Round trip within same datacenter ...... 500,000 ns = 0.5 ms
    Read 1 MB sequentially from SSD* ..... 1,000,000 ns = 1 ms
    Disk seek ........................... 10,000,000 ns = 10 ms
    Read 1 MB sequentially from disk .... 20,000,000 ns = 20 ms
    Send packet CA->Netherlands->CA .... 150,000,000 ns = 150 ms

Assuming ~1GB/sec SSD

![Visual representation of latencies](http://i.imgur.com/k0t1e.png)

Visual chart provided by [ayshen](https://gist.github.com/ayshen)

Data by [Jeff Dean](http://research.google.com/people/jeff/)

Originally by [Peter Norvig](http://norvig.com/21-days.html#answers)

Lets multiply all these durations by a billion:

Magnitudes:

### Minute:
    L1 cache reference 0.5 s One heart beat (0.5 s)
    Branch mispredict 5 s Yawn
    L2 cache reference 7 s Long yawn
    Mutex lock/unlock 25 s Making a coffee

### Hour:
    Main memory reference 100 s Brushing your teeth
    Compress 1K bytes with Zippy 50 min One episode of a TV show (including ad breaks)

### Day:
    Send 2K bytes over 1 Gbps network 5.5 hr From lunch to end of work day

### Week
    SSD random read 1.7 days A normal weekend
    Read 1 MB sequentially from memory 2.9 days A long weekend
    Round trip within same datacenter 5.8 days A medium vacation
    Read 1 MB sequentially from SSD 11.6 days Waiting for almost 2 weeks for a delivery

### Year
    Disk seek 16.5 weeks A semester in university
    Read 1 MB sequentially from disk 7.8 months Almost producing a new human being
    The above 2 together 1 year

### Decade
    Send packet CA->Netherlands->CA 4.8 years Average time it takes to complete a bachelor's degree




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值