header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
扫码下载APP

Shopify CEO亲手提交93个commit优化Liquid模板引擎:用AI跑了120轮自动化实验,解析+渲染快53%,对象分配减少61%

1M AI News 监测,Shopify CEO Tobi Lütke 以个人 GitHub 账号向 Liquid 提交了一个包含 93 个 commit 的 PR,在真实 Shopify 主题模板基准测试上实现了解析+渲染速度提升 53%、对象分配减少 61%,全部 974 个单元测试零回归。Liquid 是 Lütke 于 2006 年为 Shopify 投入生产使用的开源模板引擎,目前为约 560 万家活跃商店提供渲染支持。

该 PR 的开发方法基于 pi-autoresearch(一款受 Andrej Karpathy 的 autoresearch 项目启发、为 Pi 编程 Agent 开发的自动化实验插件):编辑 → 提交 → 跑测试 → 跑基准 → 保留或丢弃,共迭代约 120 轮自动化实验,仅保留通过测试且提升性能的变更。其核心策略是「分配驱动」,由于 GC(垃圾回收)消耗了 74% 的总 CPU 时间,每减少一次对象分配都会对实际运行时间产生放大效果。PR 中还详细记录了 6 项「没有生效」的优化尝试,包括基于 String#split 的分词器(快 2.5 倍但无法处理 Liquid 的标签嵌套边界情况)和 TruthyCondition 子类(YJIT 在调用点的多态性损耗超过了节省的 115 次分配)。

具体优化分三层:解析阶段(快 61%,少 3.8 万次分配),引入了新的 Cursor 类替代散布在各处的手工字节扫描、用 String#byteindex 替代 StringScanner 做分词(快 40%)、为 100% 的变量构建了零 Lexer 的快速解析路径;渲染阶段(快 20%,少 3000 次分配),为基本类型跳过 to_liquid 调用、预计算 0-999 的冻结字符串避免 Integer#to_s 分配、消除 90% 过滤器调用中的 *args 数组分配。分支名 autoresearch/liquid-perf-2026-03-11 表明这项工作完成于 3 月 11 日。

举报 纠错/举报
纠错/举报
提交
新增文库
仅自己可见
公开
保存
选择文库
新增文库
取消
完成