Zod 突然“会编译”了:速度快 9 倍、内存少近 90%,代价是 new Function?
作者:Daniel Curtis
Zod 4.5 引入运行时 Schema 编译机制,通过 `z.compile()` 将验证器执行速度提升 3–9 倍,内存占用降低近一个数量级;4.6 修复递归 Schema 的内存回归问题。
编译在进程内延迟完成,无需构建时插件或代码生成;`z.compile()` 保持语义一致性,零迁移成本;全局启用仅需单行 import 或 Node.js 启动参数。
适合前端/全栈工程师阅读;适合使用 Zod 构建高吞吐表单、API 网关或配置校验系统的工程师阅读;适合关注 TypeScript 运行时类型安全演进的架构师阅读。
由 Colin McDonnell 创建、以 TypeScript 为核心的 Schema 验证库 Zod,于 2026 年 8 月 28 日 发布了 Zod 4.5 ,引入 Schema 编译,将 Schema 内存占用降低近一个数量级,并加入了一批开发者期待已久的辅助功能。 Zod 4.6 随后于 9 月 9 日发布 ,在此基础上进一步扩展功能,并修复了递归 Schema 的内存回归问题。编译和内存占用方面的主要变化出现在 4.5,因此本文仍以该版本为重点,但现在升级的开发者也需要考虑后续发布的 4.6。
最重要的新功能是 z.compile() ,它可以将任意 Schema 转换为预编译验证器,以三至九倍的速度解析相同数据。编译后的 Schema 与原始 Schema 行为完全一致,不需要遵循任何特殊规则。更重要的是,正如 McDonnell 所解释的 ,编译在进程内完成,而不是在构建时完成,因此不需要额外配置打包器插件或代码生成步骤。
希望将编译应用于所有 Schema 的团队,可以在入口文件顶部添加 import "zod/compile" ,或者运行 node --import zod/compile app.js 。此后,每个 Schema 都会在首次解析数据时进行延迟编译。
通过缓存绑定方法,而不是为每个实例分别分配方法,一个空的 z.string() 现在只会保留 784 字节堆内存,而此前需要 7.5KB,内存占用大约 降至原来的九分之一 。 safeParse() 在验证失败时也不再捕获堆栈跟踪,使拒绝无效输入的成本降低约 7.5 倍。除性能提升外,4.5 还恢复了 z.deepPartial() ,并新增 .exactPartial() 、 z.creditCard() 、 z.input() / z.output() 、递归 Schema 中的循环数据支持,以及八种新的错误信息语言区域。
与此最直接相关的 4.6 新功能 是 .validate() 。它只返回布尔值,不会构建解析结果或 ZodError ,并且可以在发现第一个问题时停止验证。启用编译后,官方数据显示,在处理无效输入时,它的性能最高可达到 .safeParse().success 的 35 倍。这并不代表通用解析性能提升了 35 倍;当开发者需要转换后的输出或详细错误信息时,它也不能替代现有方法。
4.6 还增加了对类实例属性的验证、 z.fromJSONSchema() 中的六个额外验证关键字,以及 z.iban() 。对于内容安全策略禁止使用 z.compile() 所依赖的 new Function 的环境,开发者可以使用 z.withParser() 安装外部生成的解析器,但该方法本身不会生成解析器。
更重要的是,4.6 修复了 4.5 中的一项回归问题。该问题会让递归 Schema 持续持有已经解析的数据,并可能导致内存耗尽。
开发者 Mehul Mohan 将对象和数组上约十倍的性能提升 称为 “一次真正的性能突破”。
在该版本引用的 Moltar parseSafe 基准测试 中,编译后的 Zod 达到每秒 4750 万次操作,略微领先每秒 4530 万次的 Typia ,并将 Valibot (每秒 180 万次)和 ArkType (每秒 15.2 万次)远远甩在身后。考虑到 ArkType 长期以来一直宣传其性能比 Zod 快许多倍,这一结果尤其引人关注。不过,在随 4.5 发布的纯布尔断言基准测试中,Typia 和 ArkType 仍领先于编译后的 Zod。这些数字只是该版本发布时的性能快照,并不是针对 4.6 新增 .validate() 路径进行的最新对比;最快的选择仍然取决于具体工作负载。
Moltarbench 测试结果,来自 版本发布文章 。
Zod 是一个开源、以 TypeScript 为核心的验证库,用于定义 Schema,并在完整推断静态类型的同时解析不可信数据。它是 JavaScript 生态中采用范围最广的验证工具之一,获得了 tRPC、React Hook Form 和许多后端框架的一等支持,目前每周下载量已超过 3000 万次。
原文链接:
https://www.infoq.com/news/2026/10/zod-schema-compliation/
促进软件开发及相关领域知识与创新的传播
关于我们 我要投稿 合作伙伴 加入我们 关注我们
联系我们 内容投稿:editors@geekbang.com 业务合作:hezuo@geekbang.com 反馈投诉:feedback@geekbang.com 加入我们:zhaopin@geekbang.com 联系电话:010-64738142 地址:北京市朝阳区望京北路9号2幢7层A701
InfoQ 近期会议 上海 · QCon 全球软件开发大会 2026.10.22-24 北京 · AICon 全球人工智能开发与应用大会 2026.12.18-19
全球 InfoQ InfoQ En InfoQ Jp InfoQ Fr InfoQ Br
Copyright © 2026, Geekbang Technology Ltd. All rights reserved. 极客邦控股(北京)有限公司 | 京 ICP 备 16027448 号 - 5 京公网安备 11010502039052号 | 产品资质
本文内容由 ai007 从公开渠道聚合,版权归原作者所有。若原文已删除或变更, 以原文站为准;本站存档仅为便于查阅而保留。