每个程序员都应该知道的延迟数字

该图通过 颜色和小方格大小 相对性地表示了各种系统操作的常规延迟,应该成为每一位进行性能分析/异步/缓存/线程优化的程序员必备工具。

【🔹 级别一:纳科级操作 (1ns ~ 100ns)】

操作类型延迟说明
L1 Cache 访问1ns最快的缓存
Branch Mispredict3ns分支预测错误带来的缓慢
L2 Cache 访问4ns比L1缓慢一点
Mutex Lock/Unlock17ns线程同步常用
内幕网发送2KB44ns本机网络带宽非常快
主内存访问100ns比缓存慢 100倍

【🟩 级别二:微秒级操作 (1μs ~ 999μs)】

操作类型延迟说明
内存顺序读取 1MB3μs较大量的内存读取
用Zippy压缩1KB2μs压缩操作也较慢
SSD随机读取16μs比内存慢多了
SSD 顺序读取 1MB49μs加速显著
同数据中心循环500μs同地网络延迟额强
磁盘顺序读取 1MB825μs比 SSD 慢了一个数量级

【🔴 级别三:毫秒级操作 (1ms ~ 150ms)】

操作类型延迟说明
磁盘寻道2msHDD 硬盘最慢环节
CA 至荷兰网络来回150ms全球网络速度上限

【总结心得】

  • 如果你在写 性能敏感 代码,懂得这些延迟数字非常重要!

  • 相对性比例:

操作延迟比例描述
CPU缓存1ns基准
内存读取100ns慢了100倍
SSD 读取49μs慢了万倍+
磁盘825μs~2ms慢 10^4倍以上
全球网络150ms慢 10^6 ~ 10^7倍

【应用场景提示】

  • 异步/缓存时:

    • 为何要先缓存数据?

    • 为何不该等磁盘或网络完成后再运行后续运算?

  • 运行分析:

    • CPU-bound vs I/O-bound

    • GPU 转 CPU 数据需较长时间,考虑 non-blocking / 线程调度

  • 设计合理的实时性系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值