IO在计算机中指Input/Output,也就是输入和输出。一个优秀的程序员如果缺乏足够的IO基础知识,那他写出的程序必然是低效且丑陋的(好像说的是自己,(⊙﹏⊙)b)。这里我列举下从第三方获取到的一些关于IO耗时的基础指标:
- L1 cache reference 读取CPU的一级缓存:1ns
- L2 cache reference 读取CPU的二级缓存:4ns
- Mutex lock/unlock 互斥锁/解锁:17 ns
- Main memory reference 读取内存数据:100ns
- Compress 1K bytes with Zippy 1k字节压缩:10 us
- Send 2K bytes over 1 Gbps network:20 us
- Read 1 MB sequentially from memory 从内存顺序读取1MB:250 us
- Round trip within same datacenter 一个数据中心往返一次:500 us
- Disk seek 磁盘搜索:10 ms
- Read 1 MB sequentially from network :10 ms
- Read 1 MB sequentially from disk 从磁盘里顺序读出1MB:30 ms
- Read 1 MB sequentially from SSD 从SSD里顺序读出1MB:3 ms
- Read 1 MB randomly from SSD 从SSD里随机读出1MB:10 ms
欢迎补充