Zod Brings In-Process Schema Compilation and a 9x Cut in Memory Footprint

TL;DR · AI 摘要
Zod 4.5通过in-process schema compilation实现验证速度3-9倍提升,内存占用减少9倍,4.6版本进一步优化性能并修复内存泄漏问题。
核心要点
- z.compile()使验证速度提升3-9倍,内存占用从7.5KB降至784字节
- 6版本.validate()在无效输入时性能提升达35倍
- 递归模式内存泄漏问题在4.6版本中被修复
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- Zod 4.5/4.6更新
- 核心特性
- in-process compilation
- 内存优化(9倍减少)
- 性能提升(3-35倍)
- 版本改进
- 4.5版本功能
- 4.6版本修复
金句 / Highlights
值得收藏与分享的关键句。
z.compile()使验证速度提升3-9倍,内存占用减少9倍
validate()方法在无效输入时性能提升达35倍
4.6版本修复了递归模式可能导致的内存泄漏问题
Zod 实现进程内模式编译,内存占用减少 9 倍 - InfoQ
InfoQ 首页 News Zod 实现进程内模式编译,内存占用减少 9 倍
Web 开发
QCon AI 波士顿(2027 年 7 月 8-9 日):AI 原型已经成功。生产环境会发生什么?
Zod 实现进程内模式编译,内存占用减少 9 倍
2026 年 10 月 16 日 2 分钟阅读
作者
- Daniel Curtis
#### 关注我们
YouTube
232K 粉丝
26K 粉丝
新
RSS
19K 读者
X
57.1k 粉丝
21K 点赞
Bluesky
收听本文 -
0:00
音频准备就绪
您的浏览器不支持音频元素。
正常
1.25x
1.5x
喜欢
新下拉阅读列表
- 阅读列表
由 Colin McDonnell 创建的以 TypeScript 为先的模式验证库 Zod,于 2026 年 8 月 28 日发布了 Zod 4.5 版本,引入了模式编译功能、模式内存使用量减少数量级,以及一系列长期期待的辅助工具。随后在 9 月 9 日发布的 Zod 4.6 版本延续了该工作并修复了递归模式内存回归问题。4.5 版本的主要编译和内存占用改进是本文的重点,但升级的开发者也应关注后续版本。
核心新增功能是 z.compile(),它能将任何模式转换为预编译验证器,解析相同数据的速度提升 3 至 9 倍。编译后的模式行为与原始模式完全一致,没有特殊规则。重要的是,如 McDonnell 所解释,编译在进程内完成而非构建时,因此无需 bundler 插件或代码生成步骤。
希望在所有位置应用该功能的团队,可以在入口文件顶部添加 import "zod/compile",或运行 node --import zod/compile app.js,之后每个模式会在首次解析数据时按需编译。
通过记忆绑定方法而非每个实例分配,一个简单的 z.string() 现在仅占用 784 字节堆内存,而非 7.5KB,内存占用减少约 9 倍。safeParse() 在失败时也会跳过堆栈跟踪捕获,使拒绝无效输入的成本降低约 7.5 倍。除速度提升外,4.5 版本恢复了 z.deepPartial(),并新增 .exactPartial()、z.creditCard()、z.input() / z.output()、递归模式中的循环数据以及八种新的错误语言环境。
4.6 版本最直接相关的新增功能是 .validate(),这是一个仅返回布尔值的检查方法,避免构建解析结果或 ZodError,并可在遇到首个问题时立即停止。启用编译后,该版本在无效输入上相比 .safeParse().success 的性能提升可达 35 倍——但这不是通用解析速度提升,也不是需要转换输出或错误细节时的替代方案。
4.6 版本还新增了对类实例的属性验证、z.fromJSONSchema() 中的六个额外验证关键字,以及 z.iban()。对于内容安全策略阻止 z.compile() 使用的新 Function 的环境,z.withParser() 可安装外部生成的解析器;它本身不会生成该解析器。
重要的是,4.6 版本修复了 4.5 版本中递归模式保留已解析数据可能导致内存溢出的回归问题。
开发者 Mehul Mohan 将对象和数组性能提升约十倍描述为“真正的性能突破”。
在发布时引用的 Moltar parseSafe 基准测试中,编译后的 Zod 达到了 4750 万次/秒,略微领先于 Typia 的 4530 万次/秒,而 Valibot(180 万次/秒)和 ArkType(15.2 万次/秒)则远远落后。这一结果颇具意义,因为 ArkType 长期宣传自己比 Zod 快许多倍。在随 4.5 版本发布的仅包含布尔值的断言基准测试中,Typia 和 ArkType 的表现优于编译后的 Zod。这些数据仅反映该版本的快照情况,并非与 4.6 版本新引入的 .validate() 路径进行的全新对比;最快选项仍取决于具体工作负载。
来自发布文章的 Moltarbench 测试结果。Zod 是一个开源的、以 TypeScript 为核心的验证库,用于定义模式并使用完全推断的静态类型解析不可信数据。它是 JavaScript 生态系统中最广泛采用的验证工具之一,在 tRPC、React Hook Form 和许多后端框架中均获得原生支持,目前每周下载量已超过 3000 万次。
作者部分主容器
关于作者
章节标题
每个作者的主容器
#### Daniel Curtis
显示更多
显示更少
#### 此内容属于 Web 开发主题
##### 相关主题:
- 开发
- Web 开发
- JavaScript
- 验证
- TypeScript
- 内存
- 相关编辑
- 相关赞助商 《实用的智能体编码实践手册》
- 相关赞助商 批量自动化代码转换。修复漏洞、迁移框架、现代化遗留代码,覆盖所有仓库。免费试用 Moderne
InfoQ 新闻通讯
每周二发送上周 InfoQ 内容摘要。加入超过 25 万名高级开发者的社区。查看示例
我们保护您的隐私。