Bun 的创始人 Jarred Sumner 在 X(原 Twitter)上晒出了一个看似不起眼、实则极其精妙的新功能。这个功能不仅让 Vue.js 作者尤雨溪(Evan You)公开点赞,还直言 Node 也应该有。
同时还炸出了 Node.js 核心贡献者 Matteo Collina 连夜写代码跟进。
我们都知道,性能调优是后端开发中最头疼的环节之一。以往我们做 CPU 性能分析(Profiling),通常的流程是:
运行代码生成
.cpuprofile文件。打开 Chrome DevTools 或专用工具加载这个文件。
看着复杂的火焰图(Flame Graph)掉头发,试图找出哪个函数占用了 CPU。
Bun 甚至打破了这个流程。
Jarred Sumner 展示了 Bun 的下个版本将支持一个新参数:--cpu-prof-md。
bun --cpu-prof-md script.js它的神奇之处在于,它输出的不是给机器读的二进制文件,而是专门给 LLM(大语言模型)读的 Markdown 格式报告。
从图中可以看到,Bun 直接在终端打印出了结构化的 Markdown 表格:
Top 10 Hotspots(最耗时的函数)
Call Tree(调用树)
Function Details(详细分析)
Jarred 的配文非常直白:“这样 LLM(比如 Claude)就能轻松阅读并 grep 它了。”
这意味着什么?意味着你不需要再自己去分析火焰图,直接把这段 Markdown 复制给 Claude,问它:“我的代码哪里慢?怎么改?” Claude 就能基于这份精确的数据给出优化建议。
这个功能一经发布,立刻引起了 Vue.js 作者尤雨溪的注意。他转发了这条推文并评价道:
"This is very good and Node should have this too"(这做得太好了,Node.js 也应该有这个功能。)
大佬发话,社区反应神速。
Node.js 技术指导委员会(TSC)成员、Fastify 的核心作者Matteo Collina迅速接招。他在评论区回复尤雨溪:
"Hold my 🍻. Let me add a readme and publish ;)." (帮我拿一下啤酒。我去加个文档就发布。)
仅仅过了几个小时,Matteo 就交出了答卷。他发布了一个名为pprof-to-md的工具,专门用于将 pprof 格式(Node.js 可生成的格式)转换为 LLM 易读的 Markdown。
Matteo 甚至直接展示了转换后的效果——一份清晰的“执行摘要”,包含了主要瓶颈、次要瓶颈,甚至还有 AI 视角的“优化潜力”评估。
目前这个工具已经在 GitHub 上开源:platformatic/pprof-to-md。
https://github.com/platformatic/pprof-to-md
这件事看似只是两个工具之间的小插曲,实则通过“尤雨溪点赞”这一事件,折射出了开发工具领域的一个重要趋势:CLI 工具的输出,正在从“面向人类”转向“面向 AI”。
1. 传统的 CLI 输出 vs AI 友好的输出
以前,CLI(命令行)工具的设计原则是:
要么给人类看(漂亮的颜色、进度条、交互式 UI)。
要么给脚本看(JSON、纯文本、无格式)。
但现在,我们需要第三种输出:给 LLM 看。
二进制文件(如.cpuprofile)对 LLM 来说是黑盒,无法直接理解。而 Markdown 是 LLM 的“母语”。Bun 的这一步棋走得很聪明,它把复杂的运行时数据,预处理成了 Token 效率最高、语义最清晰的 Markdown。
2. 调试流程的重构
Node.js 和 Bun 的这次“军备竞赛”,受益者最终是开发者。
想象一下未来的调试流程:
你的服务变慢了。
运行
node --cpu-prof-md app.js(假设 Node 官方吸纳了 Matteo 的方案)。终端直接吐出一份 Markdown。
IDE 里的 AI 助手(Cursor/Copilot/Windsurf)自动读取这段输出。
AI 直接告诉你:“第 45 行的正则表达式回溯导致了 CPU 飙升 80%,建议改为以下写法...”
这不再是“辅助编程”,这是“自动诊断”。
虽然 Bun 经常被调侃“只有跑分快”,但不得不承认,Jarred Sumner 在开发者体验(DX)上的嗅觉非常敏锐。他精准地捕捉到了“开发者正在通过 AI 阅读日志”这一行为模式的转变。
而 Node.js 社区的快速响应也证明了开源生态的活力——没有一家独大,只有相互促进。
对于我们普通开发者来说,好消息是:以后优化代码性能,可能真的只需要一句 Prompt 了。