当前位置: 首页 > news >正文

11 天、16.5 万美元,Bun 用 AI 重写百万行代码,划算吗?

2026 年 5 月:Bun 项目大规模代码迁移

2026 年 5 月,Bun 项目完成了一次在软件开发史上近乎罕见的大规模代码迁移。这次迁移从 5 月 3 日启动,到 5 月 14 日正式合并入主分支,只用了 11 天。写代码只用了 6 天,并且整个过程公开。不过,Jarred Sumner 写博客总结却花了快一个月,比写代码的时间长多了。

迁移详情:超百万行代码变更,花费 16.5 万美元

这个 JavaScript 运行时原本拥有 535,496 行 Zig 代码(不包括注释),同时,约 20% 的代码由 C++ 编写,并嵌入了多个 C/C++ 库。此次借助 AI 重写为 Rust,整个过程涉及超过 100 万行代码变更、6778 次提交,并在 Claude Code 中运行了大约 50 个动态工作流(dynamic workflows)。根据 Sumner 披露的数据,这次重写在 API 层面消耗了 59 亿个未缓存输入 token、6.9 亿个输出 token,以及 720 亿个缓存输入 token 读取,按 API 定价计算约花费 16.5 万美元。Sumner 说,这是目前技术所能达到的前沿水平。他估计,如果让 3 名完全熟悉 Bun 代码库的工程师手工完成这次迁移,大约需要一年时间,而且在这一年里,团队几乎无法继续推进新功能开发、bug 修复和安全修复。这次重写之后,Bun v1.3.14 成为最后一个 Zig 版本,Bun v1.4.0 将成为第一个 Rust 版本。

成果:从 6.7GB 内存泄漏到 609MB 稳定

Bun 最初是一个 Zig 项目,覆盖面非常广:它既是 JavaScript 和 TypeScript 转译器,也是打包器、包管理器、测试运行器、模块解析器、HTTP 和 WebSocket 客户端,还实现了 Node.js API 层。正是这样的产品宽度,让 Bun 的 CLI 月下载量超过 2200 万次,并获得了 Vercel、Railway、DigitalOcean、Claude Code 和 OpenCode 等项目或公司的支持。但同样是这种宽度,也给 Bun 带来了一些挑战。特别是在 Bun v1.3.14 中,有一个让大家头疼已久的问题:连续执行 Bun.build() 调用时,内存会不断累积,永不释放。每次构建大约泄漏 3MB,看起来不多,但如果运行的是一个开发服务器,每次请求都触发一次构建,那么内存就会被一点点吞噬,直到进程崩溃。在实际测试里,执行 500 次构建后内存占用 1.9GB,1000 次后 3.5GB,1500 次后 5.1GB,2000 次后飙升到 6.7GB。这只是诸多内存问题的冰山一角。在 v1.3.14 的 bug 修复清单中,Sumner 列出了一长串问题。这些 bug 的共性非常明显——它们几乎都指向同一个根源:将 GC 与手动内存管理在同一个软件里混合使用。更令人焦虑的是,团队并非没有努力,但崩溃报告仍然源源不断。而 Rust 版本交出的答卷是:同样执行 2000 次 Bun.build(),内存稳定在 609MB。除了内存泄漏问题得到根本性解决,Rust 重写还带来了其他几个维度的改善。在稳定性方面,v1.4.0 修复了 v1.3.14 中可复现的 128 个 bug,从内存泄漏到崩溃到颜色显示错误的帮助文本都得到了解决。从体积上,结合 Rust 重写、ICU 更改和相同的代码折叠,Bun 在 Linux 和 Windows 上的二进制文件大小减少了约 20% 。在性能方面,普遍提升了 2% 到 5%。Bun.serve 从 16.96 万 req/s 提升到 17.77 万 req/s,node:http 从 10.38 万提升到 10.85 万。实际应用场景中,next build 从 13.62 秒降至 13.03 秒,tsc 批量编译从 0.94 秒降至 0.89 秒。而 Claude Code 在基于 Rust Bun 发布后,Linux 上的启动时间从 517ms 降至 464ms,快了约 10%。

方法:64 个 Claude,11 天,50 个工作流

Sumner 是怎么做到的,这可能是最值得关注的部分——因为他用的方法,和传统的“让 AI 写代码”不同。Sumner 把整个过程拆成了大约 50 个动态工作流,每个工作流都是一个循环。他在博客里用伪代码描述了这个模式。这种模式贯穿了整个重写过程。每个工作流负责一个特定目标。峰值时期,Sumner 同时运行了 4 个工作流,每个工作流里 16 个 Claude,总共 64 个 Claude 同时在 4 个工作树中并行工作,各自提交和推送文件。在最高峰时,Claude 每分钟写了约 1300 行代码。这种“实现者 / 审查者”的分离设计是关键。代码写完只是第一步。接下来是让 bun --version 跑起来,然后是 bun test。两天后,Linux 平台的失败测试从 972 个降到了 23 个。一天半之后,Linux 全绿了。五天后,全部六个平台——Linux x64、Linux arm64、macOS x64、macOS arm64、Windows x64、Windows arm64——全部通过。5 月 14 日,PR #30412 正式合并,测试套件全部通过,没有跳过或删除任何测试。

隐忧:13,000 个 unsafe 和无法逐行审查的代码

不过,Sumner 也承认,这项工作还没有真正结束。截至目前,Bun 的 Rust 代码中大约有 4% 位于 unsafe block 内,约 13,000 个 unsafe 关键字,分布在约 27,000 行代码中,而 Rust 总代码量约为 780,000 行。他预计后续重构会让这个比例降下来,但 Bun 的 unsafe 数量与 uv 的差距很难用“需要调用 C 库”来解释。并且随后还在安全 Rust 代码中也暴露了未定义行为。Sumner 自己也承认,这次重写引入了 19 个已知的回归问题,并表示大多数回归问题都源于语法相同但语义不同的代码。虽然已经问题都修了,但这并不表示百万行 AI 代码就没有其他问题。还有一个不能忽略的事情是代码审查。100 万行的变更实际上没法由人类逐行看。这次 PR 的审查者主要是 claude[bot] 和 coderabbitai[bot]。Sumner 自己也承认,他的审查方式是“检查对抗性审查 agent 是否正确捕获了差异,确保转换指南被遵守,同时自己也手动读了不少代码”,但“不少”是多少,他没说。还有一个绕不开的问题:Bun 在 2025 年 12 月被 Anthropic 收购了,真正能有效维护这套代码库的工具,基本只有 Claude 自己。社区里有人说,这已经算不上传统意义上的开源项目了。

16.5 万美元换一年工作量,值吗?

Sumner 在博客中还披露,这次重写的 API 成本约为 16.5 万美元,等于 3 名工程师一年的工作量。这个数字在 Hacker News 上引发了激烈的讨论。有人认为,这笔账其实很划算。但也有人指出,把成本简化成 API 定价,是在刻意淡化真实投入。而且目前看来,虽然 16.5 万美元换一年工作量,账面上看挺划算,但真正的成本不在这张账单上。这个代码库有 6778 次提交,没有一个人从头到尾完整读过,虽然眼下一切正常,可未来维护成本怎么算,其实挺难。那么,你认为 16.5 万美元换一年工作量,到底值吗?

http://www.jsqmd.com/news/1158744/

相关文章:

  • 2026年7月最新唐山江诗丹顿官方售后客户服务电话及线下网点地址 - 江诗丹顿服务中心
  • 企业级Agentic AI落地指南:从核心能力到本地验证
  • MIPS单周期CPU数据通路搭建:5大核心部件与关键多路选择器设计详解
  • xml页面可以打开,不报错,但是显示数据的地方也不显示,我是怎么解决的
  • 2026年7月贵州木托盘/贵州塑料托盘品牌推荐排行_贵阳锦华诚商贸有限公司 - 行业平台推荐
  • EM3080-W解码芯片与dsPIC30F4013微控制器的嵌入式条码识别方案
  • LangChain环境搭建三步通关:依赖隔离、协议校验与Agent验证
  • 3PEAK思瑞浦 LM2903AL1-SR SOP8 比较器
  • 从餐饮到具身智能,普渡机器人百亿入场后如何应对新考验?
  • STC89C52 智能台灯 PWM 调光实战:10档亮度调节与光敏自适应算法详解
  • Metasploit渗透测试框架:从零安装到实战漏洞利用
  • 2026 AI大模型API加速站全维度揭秘:主流服务商性能成本实测排位选型全指南
  • 双增量编码器电机编码方法解析:游标刻线原理与3步实现绝对位置
  • 卡地亚中国官方售后服务中心|电话和完整地址权威信息通告(2026年7月最新) - 卡地亚服务中心
  • TLA2518与PIC18LF27K42构建高精度多通道ADC系统
  • ROS 跨版本跨网卡通信终极方案:Noetic+Foxy↔Humble 双机互通、DDS 冲突根治、双网段失联解决
  • AI老兵谈大模型:中国开源领先,摩尔定律已死,4比特预训练是冒险
  • CR1632 等 3 类纽扣电池特性解析:不可充电 vs 可充电(ML/ LIR)方案对比
  • 从“高延迟”到“秒级响应”:为什么低延迟是海外云手机的核心?揭秘QTphone的底层技术
  • PixWorld:像素空间扩散模型统一3D场景生成与重建技术解析
  • 2026年7月最新贵阳天梭官方售后客户服务热线与维修网点地址汇总 - 天梭服务中心
  • BPSK/QPSK/16QAM 数字调制实战:Python 实现 3 种星座图与误码率对比
  • 算力星网SSD电源管理设计:天硕宇航级方案如何应对AI载荷功耗挑战
  • OpenAI键盘价格预测与AI硬件市场分析
  • SSH安全加固实战:快速禁用弱加密算法与配置详解
  • Unity头发渲染实战:从Kajiya-Kay光照到发片优化全解析
  • 【优化求解】基于粒子群算法的多码头连续泊位分配优化研究附Matlab代码
  • 2026年7月最新成都积家官方售后客户服务热线与维修网点地址汇总 - 积家官方售后服务中心
  • ADP5350与STM32L4S5ZI构建高效电源管理系统
  • 大模型数据治理:从挑战到企业级解决方案