Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Zod4.5を10分で
Search
赤神青空
September 02, 2026
Programming
18
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Zod4.5を10分で
赤神青空
September 02, 2026
More Decks by 赤神青空
See All by 赤神青空
Vitest5.0は何が速くなったのか
akagami
0
10
1MBの壁にぶつかった話
akagami
0
20
S3ライフサイクル入門
akagami
0
17
Viteはサーバーとクライアントを判定していない
akagami
0
24
【AWS RDS解説】待機系は読めるのか
akagami
0
24
OpenAI と Cursor、決裂までの3年
akagami
0
43
「まずはAI」の前に、分けて考える
akagami
0
28
【AWS Dogwood入門】使い分けと、採用するときの注意
akagami
0
17
【AWS Dogwood入門】認可はどこに置かれているか
akagami
0
31
Other Decks in Programming
See All in Programming
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
400
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
110
Press start. Python's next generation.
willingc
PRO
3
300
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
170
Hono + Inertia + React で LP を構築した話
oukayuka
2
190
XHTMLが残したもの
yosuke_furukawa
PRO
0
190
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
270
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
130
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
420
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
400
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
140
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
700
Ruling the World: When Life Gets Gamed
codingconduct
0
310
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
57k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Designing Powerful Visuals for Engaging Learning
tmiket
1
520
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
64k
Navigating Weather and Climate Data
rabernat
0
500
Speed Design
sergeychernyshev
33
2.1k
Statistics for Hackers
jakevdp
799
230k
Transcript
2026年9月 Zod 4.5 を10分で 速くなって、軽くなって、少しだけ厳しくなった 赤神 青空
▪2026年8月28日リリース 4.5を3つの数字で 3〜7x パース速度 z.compile() を使った場合 今ココ はじめに 9.8x メモリ削減
z.string() 1個あたり 7.5x 失敗パス safeParse の失敗が速くなった 2/11
▪速くなった・軽くなった・少し厳しくなった 起きたことは3つ 4.5は性能リリース。ただし挙動の修正も静かに入っている。 持って帰っていただくのは、この3つだけです。 01 02 03 スキーマを事前にコンパイルできる スキーマ1個あたりの常駐メモリが減っ た
今まで通っていた入力が弾かれる 速くなった 今ココ はじめに 軽くなった 厳しくなった 3/11
▪4.5の目玉、z.compile() 専用の関数を生成する スキーマを1度だけ走査して、分岐だけが並んだJavaScriptを生成する。 実行時に生成する new Function() で作る。ビルド設定 は不要。 使い方は変わらない 型もエラーも通常のスキーマと同
一。 速いのは成功時だけ 失敗した入力は通常パーサに戻る。 20キーのobjectで7.8倍。形が複雑なほど効く。 今ココ 速くなった 4/11
▪個別に掛けるか、アプリ全体に掛けるか 入れ方は2通り 全体モードは遅延。実際にパースしたスキーマだけがコンパイルされる。 typescript const Compiled = z.compile(Player); Compiled.parse(input); //
20キーobjectで7.8倍 typescript import "zod/compile"; // 定義より先に置く import * as z from "zod"; bash node --import zod/compile app.js 今ココ 速くなった 5/11
▪20キーのobject・1回あたり・中央値 手元で測ってみた 失敗 成功 12,404 → 1,753 ns 696 →
410 ns 7.1倍。上げるだけで手に入る コンパイルまで掛けると 97 ns 4.4.3 → 4.5.4。失敗パスが素直に効く 今ココ 速くなった 6/11
▪コンパイラ本体がバンドルに乗る タダではない ✕ 入れると増える gzipで約7KB(minifyで28KB) Zod: 24.1KB → 31.1KB Zod
Mini: 4.6KB → 13.2KB 失敗の多い入口はむしろ2度手間 ◯ 使わなければゼロ 呼ばなければ完全にtree-shakeされる CSP環境では new Function が不可 非同期や再帰を含むと黙って降りる サーバのホットパスから試すのが素直 ライブラリ側で zod/compile を import しないこと。これはアプリ側の設定。 今ココ 速くなった 7/11
▪メモリが1桁減った理由 メソッドの束縛をやめた 4.4は全メソッドをインスタンスに束縛していた。それを prototype に戻した。 4.4のz.string() 自前プロパティ49個。うち40個が関 数。 4.5のz.string() 6個。触らないメソッドは作られな
い。 手元でも確認した 7.30kb → 0.79kb。9.2倍の削減。 これは何もしなくても効く。上げるだけでいい。 今ココ 軽くなった 8/11
▪同じ入力を4.4.3と4.5.4に食わせた結果 厳しくなった4つ 日時 文字数 ULID IPv6 秒が無いと弾く 絵文字5個が通る 先頭Zは弾く ::1+改行は弾く
4.4.3では分精度も通っていた 4.4.3では弾いた/min(5)は逆 0〜7のみ。4.4.3では通っていた 4.4.3では通っていた いずれも健全性の修正。既存の入力を先に洗う 今ココ 変わった 9/11
▪明日からやること まとめ 01 まず上げる 失敗の7.1倍もメモリ削減も、上げるだけで効く。 02 compile はホットパスから 7KB増える。効くのはキーの多いスキーマ。 03
日時と文字数の検証を洗う 分精度のISO文字列と、絵文字を含む入力が対象。 今ココ まとめ 10/11
▪一次情報と、実測に使った環境 出典 zod.dev/blog/zod-4-5 ── リリース本体 zod.dev/blog/introducing-z-compile ── 仕組み zod.dev/blog/reducing-memory-footprint zod.dev/compile
── AOTコンパイルのドキュメント 実測は Node 22.22.2 / zod 4.5.4 と 4.4.3 今ココ まとめ 11/11