1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Zodが「遅い」と言われる主な理由

Posted at

結論

Zodが「遅い」と言われる主因は、実行時にスキーマを逐次解釈する“インタプリタ方式”ゆえのオーバーヘッドにある。
多くのアプリでは十分に速く、超高スループット環境だけが問題になりやすい。
対策は開発時でZodのDXを享受しつつ、本番のホットパスでは Zod→JSON Schema→Ajv のビルド時コンパイルでAOT的な速度を得ること。

  1. 背景:ZodはTypeScriptバリデーションの定番で、DXと型推論が強み。
  2. ベンチ:safe parseでTypia≈7,600万ops/s、Zod v4≈670万、v3は100万未満。
  3. 95%の現場:CRUD中心のWebアプリではI/Oが支配的で差は体感しにくい。
  4. 5%の現場:高スループットAPIではZodがCPUボトルネック化し得る。
  5. 実例:APIゲートウェイで最適化後にCPU使用率が80%→20%へ低下。
  6. 根本原因:Zodは実行時にスキーマグラフを走査するインタプリタ方式。
  7. 対照アーキテクチャ:TypiaなどはAOTで最適化済みの検証関数を生成し高速。
  8. 解法:ZodスキーマをJSON Schemaへ変換し、Ajvで事前コンパイルして利用。
  9. 導入像:zod-to-json-schema+Ajv+ビルドスクリプトで本番は関数を呼ぶだけにする。
  10. 運用指針:開発体験はZodを維持しつつ、本番のホットパスだけAOT化で両取り。

参考記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?