网易首页 > 网易号 > 正文 申请入驻

性能真的不重要了吗?Jeff Dean给出反常答案

0
分享至


新智元报道

编辑:倾倾

【新智元导读】很多人背着「过早优化是万恶之源」的名言,写出的却是处处漏风的代码。Google传奇Jeff Dean的这份笔记破了真相:性能不是最后调出来的,而是你在选第一个容器、敲第一行代码时,就已经注定的物理结局。

2025年,是个很容易让人产生错觉的时间点。

这时算力不再稀缺,云资源随叫随到,AI已经能写出准确无误的代码。

在这样的环境里,「性能」似乎正在悄悄贬值。因为代码写得慢一些,好像也没什么大不了。

就在这种氛围下,Google的传奇工程师Jeff Dean更新了一份老文档:Performance Hints。


比起一篇炫技的论文,它更像是一份老派工程师的随笔,里面重新整理了基础法则。

它反复重申一个事实:计算机底层的物理规则,从未因为云原生、AI或硬件的进步而改变。

硬件的进步掩盖了代码的低效,这些问题会在系统中不断堆积,直到成为无法绕开的成本。

「过早优化」,成了平庸代码的豁免权

所有工程师都听过一句老话:

Premature optimization is the root of all evil.(过早优化是万恶之源)。

它原本是提醒我们,别为了抠几行代码,把系统搞成一团乱麻。

但在实践中,这句话慢慢变了味,成了一个免责口令——只要遇到性能质疑,一句「别过早优化」就能把所有问题挡回去。

结果走向了另一个极端:写代码时,性能被整体忽略。抽象可以多一层,数据可以多拷贝一次,API可以写得更「通用」。


瑞士奶酪模型:单个小漏洞没事,但是一层层叠加,对齐了会出大事

大家总觉得将来有profiler,等真慢下来再说。

可等系统上线,流量涌入,响应开始变拖沓,大家终于打开性能分析图,却发现屏幕上什么都没有。

没有一个函数占掉40%的时间,没有明显的性能热点。你看到的只有一张异常平坦的火焰图——每一层都慢一点,每一个看似无关紧要的选择,都给未来埋下隐患。

你很难指出哪里出了错,因为问题从一开始就没有集中出现——这正是Jeff Dean反复强调的一种模式。

性能不是被某个错误决定拖垮的,而是被一连串「看起来没问题」的决策慢慢稀释掉的。


一旦走到这一步,优化会变得异常昂贵,因为你失去了明确的下手点。

所谓「关键的3%」,指的从来不是写完代码后再去抠字眼,而是在写第一行代码时,就要避开那些虽然方便、但明显低效的路径。

这不只是技巧,更像一种素养。真正拉开差距的地方,往往发生在profiler还没派上用场之前。

5ns和5ms之间,隔着整个物理世界

如果说前面的区别发生在「已经来不及了」,那么接下来要说的是:「为什么我们会在一开始就走错路」。

事实上,很多工程事故并不是因为「不会优化」,而是因为对「慢」没有感觉。

在编辑器里,5ns和5ms看起来只是多了几个0。缩进一样,语法一样,在Code Review时看起来合理合规。

但在物理世界,这些数字根本不属于同一个尺度。

Jeff Dean在清单里列出了一张延迟对照表。一旦把这些数字还原成现实中的时间,很多所谓的设计直觉会当场崩塌。

  • L1缓存命中:约0.5ns,等于微观世界里的一次脉搏。

  • 分支预测失败:5ns,是连续十次脉搏。

  • 主存访问:50ns,相当于起个身,走下楼,取了个外卖。

  • 随机磁盘寻址:10000000ns,相当于从北京一路走到了上海。


最早由Google工程师整理,Jeff Dean在多次演讲中用过这个思路

如果你的方案里出现了一次磁盘寻址,后面无论代码写得多优雅、逻辑多漂亮,在物理尺度上都已经输透了。

这就是顶级工程师脑子里的「物理地图」。他们本能地知道:哪些操作属于同一量级,而哪些操作一旦混进来,系统的节奏就彻底乱了。

这也是「信封背面估算」(Back-of-the-envelope calculation)的价值所在。

它是一次动手之前的排查:这个方案会触发多少次内存访问?有没有隐藏的分配?循环里会不会撞上网络IO?

如果答案里出现了一个不合时宜的量级,这个方案就应该被扔进垃圾桶。

很多性能问题并非「实现得不够好」,而是选错了路径。

一旦建立起这种尺度感,很多无意义的争论就能一眼看穿。

反直觉的真相:Google大佬的代码为什么看起来很「土」?

真正拉开差距的地方,不在于「写得多聪明」,而在于知道哪些地方「不值得聪明」。

翻开这份Performance Hints,我们能发现一个反直觉的事实:没有复杂的算法,很多改动看起来都有点「土」。

但这些细碎的选择,却被Jeff Dean反复拿出来强调。

对内存的节制

「尺度感」让我们意识到分配内存的珍贵,在实战中,这种意识会转化成对容器的极致考究。

为什么他们偏爱InlinedVector?因为在绝大多数场景下,它根本不碰堆内存,数据直接躺在栈上。

这带来的是实实在在的物理收益:少一次分配,多一次缓存命中。

同样的,使用Arena(内存池)也不只是为了管理方便,而是为了让数据在物理内存上变得连续,顺应CPU缓存的节奏。

对数据分布的尊重

所谓的Fast Path(快路径),本质上是承认世界是不均匀的。99%的请求和输入都比想象中普通。

如果坚持让每一次调用都走那条「最通用、最保险」的路,实际上是在用极少数的边缘情况,绑架绝大多数的正常流量。


清单里提到的UTF-8处理就是一个典型:现实中大量字符串其实只有纯ASCII字符。

如果一上来就按完整的解析逻辑走,那每一个字节都在为万分之一的极端情况买单。

看一眼,是ASCII就直接放行——这种行为,建立在对数据规律的尊重之上。

对抽象成本的自觉

清单里举了个例子:把Protobuf逻辑改成原生结构体,性能提升20倍,让很多人不安。

Protobuf确实解决了跨语言和版本演进的难题,但便利从不是免费的,每一层封装、每一次解析,都是一笔隐蔽的「抽象税」。

就像在透支信用卡,你可以尽情购物,可一旦账单寄来,就要付出相应代价。


抽象并不会消失,只是被编译器展开,最终落实到一行行具体的实现上。

当抽象层数不断叠加,成本也会在底层被一并兑现。

这就是为什么他们建议在热路径里避开不必要的层级、避开那些「为了完整而完整」的设计。

目的是让你清楚地意识到,你到底在为什么付费。

顶级工程师关心的,从来不是如何写出最聪明的代码,而是如何避免那些本不该出现的开销。

当你在敲键盘时,能对分配、分布、抽象成本保持警惕,很多性能瓶颈在发生之前,就已经被挡在了门外。

想提高性能,就不能对代价视而不见

很多人把性能理解成一种阶段性的工作:系统慢了,就开始优化;不慢,就先放一边。

但读完这份清单,你很难再这样看待它。

Jeff Dean们反复强调的,其实不是「如何省下几纳秒」,而是「你是否真正理解自己正在使用的计算资源」。

CPU、内存、缓存、磁盘......这些底层的物理规律并没有因为云原生或AI的流行而消失,它们只是被包装得更抽象了。

顶级工程师之所以显得从容,是因为他们很少走到「火场」里:在写第一行代码时,他们就已经避开了那些注定昂贵的路径。

这份Performance Hints读起来不像教程,更像是一份肌肉记忆。它不要求你处处极限优化,而是要求你在做决策时,不要假装不知道代价。

也许真正的分界线一直是——当你写下一个循环、设计一个数据结构、决定要不要多加一层时,脑海中是否浮现出那张时间和尺度的地图。

一旦有了它,很多平庸的代码,你就再也写不下去了。

参考资料:

https://x.com/JeffDean/status/2002089534188892256?s=20

秒追ASI

⭐点赞、转发、在看一键三连⭐

点亮星标,锁定新智元极速推送!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
男子地铁喷辣椒水后续:人已被抓,正脸被扒已社死,更多黑料流出

男子地铁喷辣椒水后续:人已被抓,正脸被扒已社死,更多黑料流出

暖心萌阿菇凉
2026-05-02 11:53:43
养父拾荒将我养大,30年后我荣升大校,婚礼上岳母见到养父懵了

养父拾荒将我养大,30年后我荣升大校,婚礼上岳母见到养父懵了

晓艾故事汇
2025-07-12 17:17:27
知名港星自曝炒股亏掉3000万,大曝女星饭局内幕,支票金额随便填

知名港星自曝炒股亏掉3000万,大曝女星饭局内幕,支票金额随便填

叨唠
2026-05-02 23:40:10
专家呼吁:马上停用这5种调味酱,它是肠癌催化剂!再下饭也别沾

专家呼吁:马上停用这5种调味酱,它是肠癌催化剂!再下饭也别沾

读懂世界历史
2026-05-03 09:44:10
文班亚马:戈贝尔在我的成长道路上扮演了重要角色 他是我的榜样

文班亚马:戈贝尔在我的成长道路上扮演了重要角色 他是我的榜样

北青网-北京青年报
2026-05-02 21:14:11
尿酸危机,席卷中国

尿酸危机,席卷中国

DT商业观察
2026-04-29 11:59:38
笑不活了!苹果工程师忘删 Claude.md 被抓包了,220 万人次围观。网友:有点双标啊

笑不活了!苹果工程师忘删 Claude.md 被抓包了,220 万人次围观。网友:有点双标啊

新浪财经
2026-05-03 04:45:48
22岁张本智和麻了!0-3遭世界第10横扫 多次高调宣称夺金惨遭打脸

22岁张本智和麻了!0-3遭世界第10横扫 多次高调宣称夺金惨遭打脸

风过乡
2026-05-03 06:35:16
中国烂尾军事工程6501:因湖南老农上山寻牛,意外被发现?

中国烂尾军事工程6501:因湖南老农上山寻牛,意外被发现?

抽象派大师
2026-05-02 00:52:13
命硬!43岁墨菲轰4连鞭大逆转 第5次进决赛:或迎战第4位中国选手

命硬!43岁墨菲轰4连鞭大逆转 第5次进决赛:或迎战第4位中国选手

风过乡
2026-05-03 01:38:11
63岁穆帅暴怒 2-0后连丢2球送波尔图提前丢冠 取消发布会狂批裁判

63岁穆帅暴怒 2-0后连丢2球送波尔图提前丢冠 取消发布会狂批裁判

风过乡
2026-05-03 05:50:13
黄玉郎自曝与黎姿分手原因,受高人指点放弃忘年恋,曾在一起三年

黄玉郎自曝与黎姿分手原因,受高人指点放弃忘年恋,曾在一起三年

一盅情怀
2026-04-30 16:27:22
别再问雄安搞得怎样了,这盘棋解决的可不只是“北京堵车”这桩事

别再问雄安搞得怎样了,这盘棋解决的可不只是“北京堵车”这桩事

趣味萌宠的日常
2026-05-03 09:20:36
美国网友疑惑:美国曾7次帮助中国,为何中国人不感恩?

美国网友疑惑:美国曾7次帮助中国,为何中国人不感恩?

霹雳炮
2026-05-01 22:58:18
最差劲的美国总统是谁,不是特朗普、不是拜登,而是作恶多端的他

最差劲的美国总统是谁,不是特朗普、不是拜登,而是作恶多端的他

混沌录
2026-04-29 20:28:14
不打了!膝盖受伤!塔图姆退出抢七大战

不打了!膝盖受伤!塔图姆退出抢七大战

篮球教学论坛
2026-05-03 06:57:54
你知道,女人是怎么一步一步出轨的?

你知道,女人是怎么一步一步出轨的?

加油丁小文
2026-05-03 10:00:25
炎亚纶凌晨发长文清算16年恩怨:决裂汪东城、官宣结婚告别飞轮海

炎亚纶凌晨发长文清算16年恩怨:决裂汪东城、官宣结婚告别飞轮海

一盅情怀
2026-05-01 15:51:15
YOYO留言消失引石明开播上课,双方较量开始

YOYO留言消失引石明开播上课,双方较量开始

孤傲何妨初
2026-04-30 21:32:06
阿森纳3-0富勒姆 哲凯赖什双响

阿森纳3-0富勒姆 哲凯赖什双响

上游新闻
2026-05-03 09:56:07
2026-05-03 10:35:00
新智元 incentive-icons
新智元
AI产业主平台领航智能+时代
15117文章数 66829关注度
往期回顾 全部

科技要闻

库克罕见"拒答"!苹果正被AI供应链卡脖子

头条要闻

父母正相互拍照6岁孩子坠崖 掉进离江面仅50公分夹缝

头条要闻

父母正相互拍照6岁孩子坠崖 掉进离江面仅50公分夹缝

体育要闻

休赛期总冠军,轮到休斯顿火箭

娱乐要闻

高圆圆赵又廷游三亚 牵手逛街好甜蜜

财经要闻

后巴菲特时代,首场股东会透露了啥

汽车要闻

同比大涨190% 方程豹4月销量29138台

态度原创

健康
艺术
家居
时尚
军事航空

干细胞治烧烫伤面临这些“瓶颈”

艺术要闻

李克强致宋健信儒雅率意,中年钢笔字果敢,江湖体为何越骂越火

家居要闻

灵动实用 生活艺术场

春天别总傻傻穿一身黑,看看这些日常穿搭,高级舒适又优雅

军事要闻

伊朗公布伊方最新谈判方案

无障碍浏览 进入关怀版