Application benchmarks
- CPU
- AMD EPYC 7763 64-Core Processor · 4 logical CPUs
- OS
- Linux-6.17.0-1022-azure-x86_64-with-glibc2.39
- Samples
- 10
- Parallel jobs
- 1
- Run duration
- 19m 20s
Measurement details
- Repeated warmups
- 3
- Timing
- Median ms · one-shot / repeated · startup excluded
- RSS
- Median MiB · separate one-shot processes including startup
- Startup
- Empty -c command · launch through exit · normal defaults
- Sort
- Percentage advantage vs chart reference · largest improvement first; click headers to reorder
Monty 1.3.0 · @main: Monty 1.3.0 · Python 3.15: CPython 3.15.1 · PyPy 8.0.0
Runtimes and build details
monty · monty · 1.3.0
/home/runner/work/flying-circus/flying-circus/_runtimes/monty/bin/monty
Prebuilt PyPI wheel: pydantic-monty-runtime==1.3.0; source revision and compiler flags unverified4fdda193d2e9d21a9656c2a6fa428715d51c69a3755aed5b5a72177aeffec4a7
monty-main · monty · 9000dc6cfaffa34a652c5d8e33a55b7cee58c251
/home/runner/work/flying-circus/flying-circus/_runtimes/monty-main/bin/monty
Source build: https://github.com/pydantic/monty@9000dc6cfaffa34a652c5d8e33a55b7cee58c251; cargo build --locked --release -p monty-runtime --bin monty; rustc 1.99.1 (58cf8f9c3 2026-10-13)c9f049b0c75077fd7011ef69a906f5214de07fefe3823f20f70663bd7b3a5442
python3.15 · cpython · Python 3.15.1
/opt/hostedtoolcache/Python/3.15.1/x64/bin/python3.15
Source revision and compiler flags unverified3359482397c7a8e9b84606a9d825c3b4e2c2b89ff622d8ddb9a84e939699180a
pypy · pypy · Python 3.11.16 (78565394c9b5, Sep 18 2026, 08:00:14)
[PyPy 8.0.0 with GCC 14.2.1 20250110 (Red Hat 14.2.1-11)]
/opt/hostedtoolcache/PyPy/3.11.16/x64/bin/pypy3.11
Source revision and compiler flags unverified7aebd6513a8f1dc8529abecf80d25b66951ddb5e9bab14b2750a7dab7947a94d
Process startup · ms
| Monty | @main | Python 3.15 | PyPy |
|---|---|---|---|
| 1.74 | 1.74 | 12.9 | 24.5 |
Runtime · ms · one-shot / repeated
Bars: Python 3.15 = midpoint · blue above = faster, red below = slower · shared asinh scale (5% transition)
| Workload | Monty | @main | Python 3.15 | PyPy |
|---|---|---|---|---|
| game_nbody | 644 / 645 | 571 / 579 | 139 / 136 | 19.2 / 19.8 |
| portfolio_risk | 143 / 142 | 128 / 127 | 87.2 / 85.5 | 12.7 / 13.1 |
| game_spectral_norm | 645 / 644 | 567 / 568 | 135 / 133 | 23.5 / 22.0 |
| game_fannkuch | 2270 / 2260 | 2150 / 2200 | 449 / 450 | 87.0 / 88.1 |
| expense_report | 0.42 / 0.34 | 0.45 / 0.37 | 1.77 / 0.56 | 0.45 / 0.55 |
| capacity_planning | 75.6 / 73.7 | 64.6 / 62.4 | 18.2 / 16.3 | 4.35 / 4.47 |
| perf_float | 415 / 374 | 515 / 454 | 96.5 / 91.6 | 24.4 / 23.9 |
| order_cleanup | 0.48 / 0.38 | 0.52 / 0.43 | 1.84 / 0.64 | 0.53 / 0.64 |
| api_report | 0.84 / 0.48 | 0.91 / 0.47 | 1.82 / 0.61 | 0.51 / 0.64 |
| perf_json_loads | 1.63 / 1.24 | 1.78 / 1.39 | 3.49 / 2.10 | 1.25 / 1.39 |
| perf_barnes_hut | 6660 / 6650 | 7140 / 7150 | 1250 / 1240 | 715 / 542 |
| game_regex_dna | failed / failed | failed / failed | 325 / 321 | 216 / 156 |
| memory_string_list_short | 342 / 295 | 338 / 298 | 162 / 154 | 83.9 / 91.9 |
| memory_customer_records | 592 / 529 | 588 / 547 | 268 / 269 | 200 / 143 |
| text_csv_aggregate_medium | 717 / 695 | 635 / 612 | 141 / 134 | 96.1 / 72.5 |
| stdout_lines | 3.99 / 4.16 | 4.16 / 4.46 | 6.92 / 4.92 | 6.64 / 4.92 |
| memory_string_index_short | 162 / 134 | 164 / 137 | 112 / 99.4 | 105 / 64.4 |
| text_json_parse_medium | 15.3 / 11.2 | 16.5 / 12.4 | 15.6 / 13.4 | 10.5 / 10.0 |
| memory_string_list_long | 453 / 388 | 437 / 396 | 174 / 165 | 119 / 151 |
| text_json_lines_medium | 19.4 / 18.8 | 21.6 / 21.1 | 27.2 / 25.4 | 18.7 / 19.0 |
| text_csv_cleanup_medium | 1390 / 1360 | 1250 / 1220 | 263 / 257 | 195 / 186 |
| game_meteor_contest | 513 / 513 | 543 / 557 | 120 / 118 | 91.4 / 87.2 |
| text_json_lines_small | 0.95 / 0.64 | 0.99 / 0.68 | 0.80 / 0.82 | 0.74 / 0.78 |
| perf_json_dumps | 15.8 / 13.3 | 17.2 / 14.6 | 18.8 / 16.8 | 23.8 / 19.2 |
| text_json_transform_small | 0.89 / 0.56 | 0.97 / 0.58 | 0.69 / 0.70 | 0.55 / 0.64 |
| text_json_parse_small | 0.77 / 0.50 | 0.83 / 0.52 | 0.46 / 0.49 | 0.40 / 0.53 |
| memory_string_index_long | 223 / 184 | 217 / 182 | 121 / 112 | 119 / 98.3 |
| text_line_logs_small | 0.53 / 0.52 | 0.59 / 0.57 | 0.56 / 0.58 | 0.62 / 0.68 |
| game_pidigits | n/a | n/a | 197 / 196 | 177 / 178 |
| text_json_transform_medium | 18.1 / 13.7 | 19.7 / 15.4 | 16.9 / 14.7 | 16.0 / 15.5 |
| text_regex_logs_medium | 36.0 / 34.9 | 40.0 / 38.9 | 24.6 / 23.2 | 28.5 / 22.2 |
| text_regex_logs_small | 1.40 / 0.99 | 1.49 / 1.06 | 0.93 / 0.78 | 2.60 / 0.95 |
| text_line_logs_medium | 23.3 / 22.8 | 23.7 / 23.5 | 13.7 / 12.7 | 17.5 / 16.6 |
| ticket_search | 37.0 / 35.1 | 38.2 / 36.2 | 14.1 / 11.5 | 20.6 / 19.1 |
| perf_unpack_sequence | 154 / 154 | 106 / 104 | 25.4 / 22.2 | 57.8 / 57.7 |
| text_csv_aggregate_small | 7.71 / 7.38 | 6.86 / 6.52 | 2.56 / 2.52 | 8.28 / 8.48 |
| text_csv_cleanup_small | 14.2 / 13.7 | 12.9 / 12.4 | 3.84 / 3.76 | 14.7 / 15.2 |
Peak RSS · MiB · one-shot
Bars: Python 3.15 = midpoint · blue above = less memory, red below = more memory · shared asinh scale (5% transition)