每个程序员都应该知道的一些访问时延值
这篇文章分享了一组程序员最好烂熟于心的参考值——从CPU各级缓存、主存、固态硬盘到跨地域网络请求的访问延迟。这组经典数据最早源自谷歌传奇工程师 Jeff Dean 的演示文稿,它用具体数字将抽象的“快”与“慢”量化成了直观的层次。 例如,从L1缓存访问只需几纳秒,而访问一次固态硬盘则需要几万纳秒,一次跨大西洋的网络往返可能要一百多万纳秒。这之间几个数量级的差异,直接决定了我们在设计算法、选择存储方案和搭建分布式系统时的性能天平该如何倾斜。文章作者不仅呈现了数据,还提供了社区整理的精炼版链接,并讲述了关于 Jeff Dean 的著名轶事,让这组数据多了几分传奇色彩。 在编程世界里,凭感觉优化往往事倍功半。而将这些延迟数字内化于心,能帮助你在架构层面做出更明智的判断,比如何时该引入缓存、数据该如何分区、或是如何设计一个能容忍网络延迟的服务。有了这些量化概念,做技术决策时才能心中有“数”。