4.2 KiB
4.2 KiB
Pydantic 2 vs MsgSpec
Libs used for benchmark:
Note that Pydantic used in benchmark is v2 which should be dozen of times faster than Pydantic v1. I have no time to waste benchmarking Pydantic v1.
Usage
Install virtual environment
poetry install
Create test data
- Edit
benchmark/factories.pyand setCOLUMNS_COUNTandPLANOGRAMS_COUNTto desired size. - Uncomment
create_test_file(TEST_DATA_FILE)line in main.py - Run main.py
You can comment back this line after json test file is created.
Run benchmark
python main.py
Results
Test file: json, 162MB
*** Running PydanticBenchmark
Finished in 10.733s
*** Running AttrsBenchmark
Finished in 3.271s
*** Running MsgSpecBenchmark
Finished in 1.685s
██████╗ ██╗ ██╗██████╗ █████╗ ███╗ ██╗████████╗██╗ ██████╗
██╔══██╗╚██╗ ██╔╝██╔══██╗██╔══██╗████╗ ██║╚══██╔══╝██║██╔════╝
██████╔╝ ╚████╔╝ ██║ ██║███████║██╔██╗ ██║ ██║ ██║██║
██╔═══╝ ╚██╔╝ ██║ ██║██╔══██║██║╚██╗██║ ██║ ██║██║
██║ ██║ ██████╔╝██║ ██║██║ ╚████║ ██║ ██║╚██████╗
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝
██╗ ██╗ ██████╗ ██╗ ██╗ ███████╗██╗ ██╗ ██████╗██╗ ██╗ ██████╗ █████╗ ██╗ ██╗ ███████╗
╚██╗ ██╔╝██╔═══██╗██║ ██║ ██╔════╝██║ ██║██╔════╝██║ ██╔╝ ██╔══██╗██╔══██╗██║ ██║ ██╔════╝
╚████╔╝ ██║ ██║██║ ██║ ███████╗██║ ██║██║ █████╔╝ ██████╔╝███████║██║ ██║ ███████╗
╚██╔╝ ██║ ██║██║ ██║ ╚════██║██║ ██║██║ ██╔═██╗ ██╔══██╗██╔══██║██║ ██║ ╚════██║
██║ ╚██████╔╝╚██████╔╝ ███████║╚██████╔╝╚██████╗██║ ██╗ ██████╔╝██║ ██║███████╗███████╗███████║
╚═╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
██████╗ ██╗ ██████╗ ████████╗██╗███╗ ███╗███████╗
██╔══██╗██║██╔════╝ ╚══██╔══╝██║████╗ ████║██╔════╝
██████╔╝██║██║ ███╗ ██║ ██║██╔████╔██║█████╗
██╔══██╗██║██║ ██║ ██║ ██║██║╚██╔╝██║██╔══╝
██████╔╝██║╚██████╔╝ ██║ ██║██║ ╚═╝ ██║███████╗
╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝