A5站长网9月23日消息,微软把GitHub Copilot运行时的代码从TypeScript整体换成了Rust,转换工作主要由编码Agent完成。据The Register报道,这次Rust重写把43万行TypeScript变成了80万行生产级Rust,token成本约12万美元,另外投入了大约三周的开发者时间,整个迁移持续14.5周,跨135个版本发布,平均每天开约1.3个迁移PR。主导复盘的微软杰出工程师Stephen Toub给出的说法是,同样的工作如果手工完成,要花几年时间和数百万美元的成本。
这个Copilot运行时支撑的是GitHub Copilot的命令行工具、Copilot应用、SDK和云Agent,也出现在VS Code、Visual Studio、Excel、Outlook、PowerPoint和一批微软云服务里。原来是TypeScript加Node.js、用V8执行,开发快,但规模上来以后启动速度和服务器密度成了瓶颈。Toub特别声明,这不是在说所有大型TypeScript程序都该换成Rust,他们的需求强调的是通过C ABI嵌入、低启动与稳态开销、以及可预测的资源占用,Rust让这些目标变得可行。
基准测试给出了两组数字。一组用共享客户端、100条并发管道跑1000个单轮会话生命周期,原TypeScript实现每秒完成7.55个,进程内运行的Rust每秒完成120个,在这个负载上是15.9倍。另一组看内存占用,10个客户端一批,TypeScript占1383MB,Rust只用126MB,原因是Rust版全在进程内完成,不需要像TypeScript那样为补全另起后台子进程。报道同时说明,这些是选定测试的结果,不代表每个Copilot负载都有同样幅度。
Toub对Agent行为的观察比数字更有意思,它们花在收集信息上的时间远多于写代码本身。他的原话是,AI疯狂吐代码的公众印象几乎是反的,在这个规模上,工作更像迭代式调查,检查当前状态、形成假设、做针对性修改,然后循环。最难的一个文件是3万行的session.ts,牵动运行时的方方面面,迁移花了25小时,其中56分钟用于读文档、122次工具调用用于澄清需求,之后它派出15个子会话,每个有自己的worktree,彼此之间通信,内置的编排能力还会找出重叠任务并协调。
迁移过程中出现了几十个回归,原本能用的东西变得不能用。Toub的总结是,如果通过编译器就等于正确,那这句话只配当个笑话,编译器不知道函数的调用顺序对不对,也不知道一项任务的成本是否可以接受。同在RustConf上,咨询顾问Lisa Crossman也提醒不要把编译器当成预言机,Rust能阻止Agent写出不安全的代码,但挡不住它写出一份正确却错误的程序。
类似的尝试在Bun也有,作者Jarred Sumner几乎全用Claude Agent把53.5万行代码从Zig迁到Rust,token花了16.5万美元,在Linux的x64平台通过了99.8%的既有测试,但Zig创始人Andrew Kelley仍把这些代码称作没人审过的垃圾。把几个案例放在一起看,AI重写正在从演示走向可验证的工程实践,它便宜、快,但验收标准必须越过编译成功这一关,落到语义正确性上。
申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!
