結論
Zodが「遅い」と言われる主因は、実行時にスキーマを逐次解釈する“インタプリタ方式”ゆえのオーバーヘッドにある。
多くのアプリでは十分に速く、超高スループット環境だけが問題になりやすい。
対策は開発時でZodのDXを享受しつつ、本番のホットパスでは Zod→JSON Schema→Ajv のビルド時コンパイルでAOT的な速度を得ること。
- 背景:ZodはTypeScriptバリデーションの定番で、DXと型推論が強み。
- ベンチ:safe parseでTypia≈7,600万ops/s、Zod v4≈670万、v3は100万未満。
- 95%の現場:CRUD中心のWebアプリではI/Oが支配的で差は体感しにくい。
- 5%の現場:高スループットAPIではZodがCPUボトルネック化し得る。
- 実例:APIゲートウェイで最適化後にCPU使用率が80%→20%へ低下。
- 根本原因:Zodは実行時にスキーマグラフを走査するインタプリタ方式。
- 対照アーキテクチャ:TypiaなどはAOTで最適化済みの検証関数を生成し高速。
- 解法:ZodスキーマをJSON Schemaへ変換し、Ajvで事前コンパイルして利用。
- 導入像:zod-to-json-schema+Ajv+ビルドスクリプトで本番は関数を呼ぶだけにする。
- 運用指針:開発体験はZodを維持しつつ、本番のホットパスだけAOT化で両取り。
参考記事