パフォーマンスとベンチマーク
ベンチマークは benchmarks/benchmark_validation.py にあります。外部依存なしで通常版とコンパイル版を比較できます。
bash
python benchmarks/benchmark_validation.py
python benchmarks/benchmark_validation.py --json測定内容
flat_basic: 基本型中心の平坦なスキーマnested_payload: ネストした辞書とリストcollect_errors: 複数エラー収集モードclass_schema: クラス記法スキーマ
読み方
speedup が 1 より大きいほど、コンパイル版が高速です。特殊バリデータやカスタム処理が多い場合は通常版との差が小さくなります。
コンパイル版の最適化対象
compile(schema) は、通常検証と collect_errors=True の検証で別々の生成関数を使います。ホットパスでは、同じスキーマを一度だけコンパイルして再利用してください。
collect_errors=True は複数の ErrorDetail を作成するため、通常検証より速度差は小さくなります。大量の正常データを検証する経路では通常検証、入力全体のエラー一覧が必要な経路では collect_errors=True を使い分けるのがおすすめです。