常见程序性能开销cost、latency延迟耗时的经验值
参考: https://github.com/colin-scott/interactive_latencies (opens new window)
https://www.zhihu.com/question/488790905/answer/2141354834 (opens new window)
https://zhuanlan.zhihu.com/p/397039359 (opens new window)
访问主内存main memory (L3 cache miss): 100纳秒
Atomic write、CAS、Futex: 20纳秒
网络数据包进/出,kernel bypass:700纳秒
TLB miss: 200-1500纳秒
线程切换: 500-2000纳秒
发送2k字节的数据到网络: 20纳秒?
读取寄存器: 0.3纳秒
访问L1 cache: 1纳秒
L2 cache: 3纳秒
L3 cache: 12纳秒
主存: 60纳秒
Atomic read: 几个纳秒
从ssd读1M数据: 100微秒
从硬盘读1M数据: 1毫秒
DDR4写入速率: 8Byte位宽 * 2133MHz = 16G/s, 实际在20-50G/s
注:上述有范围的数据并不代表极限值,而是大概范围。
一台普通的3.6GHz的物理机上:
std::unordered_setstd::string 做一次字符串hash大概100ns
std::unordered_set
编辑 (opens new window)
上次更新: 2022/09/05, 09:31:24