社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

5.25秒降至292毫秒,GitHub重写80万行代码

AI资讯每日更新 • 3 周前 • 78 次点击  

5.25秒到292毫秒,内存省了100MB。GitHub把Copilot底层从Node.js换成了Rust,顺手用AI重写了80多万行代码。

这次迁移不是简单的语言替换,而是把AI当成主力码农的一次极限压力测试。对于正在评估AI辅助重构的团队,这组数据证明了AI处理百万行级遗留代码的可行性,但前提是兼容性层和自动化测试必须跟上。

  • 性能跃升:客户端启动和单轮场景耗时从5.25秒降至292毫秒。
  • 架构瘦身:干掉Node.js和V8跨进程通信,单客户端省下约100MB工作集。
  • AI主导重写:83万多行Rust生产代码由AI生成,14.5周内通过128个PR平滑替换。

14.5周平滑替换的底层逻辑

GitHub没有选择并行重写后单次切换,而是采用增量替换。单个TypeScript组件被Rust实现替换,中间用临时N API互操作连接。这让现有的端到端测试能直接跑新代码,其他组件还在TypeScript里。迁移期间发了135个版本,包括35个稳定版和100个预发布版。兼容性层在拆除前,积累了2019个内部N API导出和3356个TypeScript调用点。到8月21日,代码库里有832,378行Rust生产代码和468,689行Rust单元测试。AI agents生成了大部分实现,编译、测试和人工审查负责抓出行为、状态、生命周期和库语义的回归问题。这种边跑边换轮胎的做法,对CI/CD流水线的压力极大,但也保证了业务不中断。

核心参数对比与边界陷阱

启动与单轮场景:5.25秒 -> 292毫秒
内存占用:减少约100MB working set
AI编译成功率:4478次cargo check,87.1%干净完成

别看着87.1%的编译通过率就觉得AI重构稳了。原文社区点出了一个致命盲区:编译通过不等于行为契约一致。Côme Redon提到遗留系统里未记录的行为契约,PLBjt也强调边界处的行为稳定。你在做类似迁移时,如果只盯编译器和单元测试,遇到状态处理、生命周期、甚至是丢失的底层优化,线上直接就会出诡异的Bug。AI擅长语法转换,但对运行时的隐式状态依赖缺乏全局视野。当Node.js的异步事件循环逻辑被翻译成Rust的严格生命周期时,如果原代码里有未文档化的副作用,AI生成的Rust代码在编译期不会报错,但在高并发下就会出现数据竞争或死锁。你的失败条件清单里必须加上:缺乏对旧系统异步回调链路的完整追踪,以及没有引入类似状态机fuzzing的验证手段。

技术决策与落地指南

面对这种级别的AI辅助重构,技术决策者该怎么选策略?原文给出了标准答案:增量替换加临时兼容层。如果你打算直接让AI生成全部代码然后做单次大切换,趁早放弃。正确的决策框架是:先剥离出独立的边缘组件,用C ABI或类似机制建立临时桥接;让AI生成新代码并接入现有E2E测试;通过灰度发布验证行为一致性;最后再拆除兼容层。在具体落地时,你要评估现有系统的耦合度。如果旧代码是典型的大泥球架构,跨模块状态共享严重,直接让AI翻译单个组件必死无疑。你需要先做架构防腐,把核心状态机抽离出来。Francesco Pira提到的人类工程判断,具体就体现在这里:人类负责划定组件边界和状态契约,AI负责在边界内填充实现。同时,利用Rust的C ABI直接嵌入宿主应用,彻底干掉V8的进程间通信开销,这不仅是性能优化,更是架构解耦。Copilot SDK目前支持TypeScript、Python、Go、.NET、Java和Rust,多语言环境下的C ABI嵌入优势会被进一步放大。

官方迁移博客:https://github.blog/ai-and-ml/generative-ai/migrating-the-github-copilot-runtime-to-rust-using-copilot/
Copilot SDK仓库:https://github.com/github/copilot-sdk
Node.js N API文档:https://nodejs.org/api/n-api.html
AI辅助开发维基:https://en.wikipedia.org/wiki/AI-assisted_software_development
Reddit社区讨论:https://www.reddit.com/r/webdev/comments/1wm9ib8/comment/pbebzbo/
Francesco Pira领英:https://www.linkedin.com/in/pirafrank/
Francesco Pira文章:https://lnkd.in/p/gv3U_SGU
Côme Redon领英:https://www.linkedin.com/in/come-redon-03a06b22/
Côme Redon文章:https://lnkd.in/p/gg5ycN6Q

GitHub这次用14.5周和128个PR证明了AI重写百万行代码在工程上完全可行,但这建立在极其严苛的自动化验证和增量发布策略之上。对于还在观望AI代码生成的团队,别去卷代码生成速度,去卷你们的E2E测试覆盖率和兼容性层设计。没有这两块基石,AI写得越快,线上爆炸得越惨。下次做技术选型时,先看看你的回归测试能不能跑到87%以上的通过率,再决定要不要让AI动你的核心底层。

看完想聊两句?
AI重写80万行代码,最坑的是编译报错还是状态丢失?

往期推荐

  • ·400亿美元,SpaceX买Nvidia芯片借款成本不涨
  • ·AI 监听每通电话,The Co-Op 职场监控引担忧
  • ·440亿估值面临腰斩,97%算力节点未落地

点击公众号头像 → 历史消息,可翻阅以上文章

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/202263