We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Talks - Sydney Runkle: Pydantic Power-up: Performance Tips for Lightning-Fast Python Applications
Learn powerful techniques to optimize Pydantic performance in Python apps. From JSON validation tricks to tagged unions, discover how to speed up your data handling.
-
Use
model_validate_json()
instead of combiningmodel_validate()
withjson.loads()
for better performance when validating JSON data -
Utilize tagged/discriminated unions instead of standard unions to avoid validating against all possible types in a union
-
Leverage callable discriminators for complex discrimination behavior when simple string discriminators aren’t sufficient
-
Use specific type hints (like
list
) instead of more general ones (likeSequence
) for better performance -
Take advantage of lazy evaluation - attributes aren’t materialized until requested, reducing unnecessary object creation
-
Pydantic V2’s performance improvements come from using Rust for core validation logic instead of Python/Cython
-
Avoid initializing type adapters repeatedly in loops - initialize once and reuse
-
For nested models with unions, tagged unions are particularly beneficial as they skip unnecessary validation steps
-
Future performance improvements will focus on:
- SIMD and Jitter for JSON parsing
- Keeping data in Rust longer
- Avoiding Python object materialization where possible
-
Schema building speedups are being implemented to improve handling of recursive and nested model structures