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 31s
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 · 5f07d32c70a55889777d787682344084fe4a48c7
/home/runner/work/flying-circus/flying-circus/_runtimes/monty-main/bin/monty
Source build: https://github.com/pydantic/monty@5f07d32c70a55889777d787682344084fe4a48c7; cargo build --locked --release -p monty-runtime --bin monty; rustc 1.99.1 (58cf8f9c3 2026-10-13)459bd2042bf6b8bed34bb993751cbd694e6cff54ed986b4594b39c42a1a0ce98
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.98 | 1.92 | 13.7 | 26.1 |
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 | 651 / 651 | 566 / 588 | 138 / 136 | 19.4 / 19.3 |
| portfolio_risk | 145 / 145 | 136 / 137 | 86.4 / 85.3 | 12.7 / 14.7 |
| game_spectral_norm | 654 / 654 | 585 / 596 | 136 / 133 | 22.7 / 22.5 |
| game_fannkuch | 2290 / 2290 | 2200 / 2260 | 449 / 448 | 87.2 / 88.3 |
| expense_report | 0.42 / 0.34 | 0.48 / 0.37 | 1.90 / 0.58 | 0.46 / 0.56 |
| perf_float | 414 / 374 | 504 / 452 | 98.2 / 92.0 | 24.3 / 20.5 |
| capacity_planning | 75.3 / 73.6 | 67.0 / 66.9 | 18.4 / 16.8 | 4.47 / 4.69 |
| order_cleanup | 0.48 / 0.36 | 0.56 / 0.41 | 1.95 / 0.65 | 0.52 / 0.65 |
| api_report | 0.85 / 0.50 | 0.94 / 0.50 | 1.95 / 0.65 | 0.51 / 0.66 |
| perf_json_loads | 1.70 / 1.19 | 1.84 / 1.52 | 3.55 / 2.14 | 1.28 / 1.41 |
| game_regex_dna | failed / failed | failed / failed | 325 / 321 | 219 / 153 |
| memory_string_list_short | 338 / 295 | 325 / 281 | 165 / 153 | 85.0 / 102 |
| memory_customer_records | 600 / 502 | 582 / 486 | 270 / 268 | 205 / 145 |
| stdout_lines | 4.04 / 4.01 | 4.22 / 4.31 | 7.45 / 5.31 | 6.98 / 4.98 |
| perf_barnes_hut | 6770 / 6800 | 7170 / 7320 | 1250 / 1230 | 709 / 687 |
| text_csv_aggregate_medium | 719 / 697 | 636 / 633 | 141 / 134 | 97.6 / 75.1 |
| memory_string_index_short | 158 / 139 | 159 / 126 | 116 / 105 | 110 / 70.0 |
| text_json_parse_medium | 15.2 / 11.3 | 16.8 / 12.9 | 15.7 / 13.2 | 10.7 / 10.3 |
| memory_string_list_long | 451 / 389 | 455 / 390 | 176 / 164 | 120 / 152 |
| text_json_lines_medium | 19.0 / 18.4 | 21.7 / 21.4 | 26.7 / 25.4 | 18.8 / 19.3 |
| text_json_lines_small | 0.95 / 0.63 | 1.03 / 0.70 | 0.81 / 0.86 | 0.77 / 0.77 |
| text_csv_cleanup_medium | 1390 / 1360 | 1260 / 1270 | 262 / 260 | 196 / 193 |
| game_meteor_contest | 513 / 513 | 547 / 553 | 121 / 116 | 92.4 / 87.5 |
| perf_json_dumps | 16.0 / 13.3 | 17.8 / 15.0 | 18.7 / 16.7 | 23.4 / 19.4 |
| text_json_transform_small | 0.92 / 0.58 | 0.99 / 0.60 | 0.70 / 0.69 | 0.59 / 0.65 |
| text_json_parse_small | 0.77 / 0.52 | 0.84 / 0.49 | 0.49 / 0.51 | 0.42 / 0.54 |
| game_pidigits | n/a | n/a | 198 / 197 | 178 / 175 |
| text_line_logs_small | 0.55 / 0.54 | 0.59 / 0.58 | 0.57 / 0.60 | 0.63 / 0.66 |
| memory_string_index_long | 221 / 186 | 231 / 187 | 127 / 112 | 123 / 101 |
| text_regex_logs_medium | 35.8 / 34.8 | 37.4 / 36.8 | 24.7 / 23.4 | 28.6 / 22.2 |
| text_json_transform_medium | 18.0 / 14.3 | 19.9 / 15.6 | 16.9 / 14.9 | 16.2 / 15.5 |
| text_line_logs_medium | 22.6 / 22.1 | 23.4 / 23.5 | 13.9 / 12.5 | 17.3 / 17.0 |
| text_regex_logs_small | 1.45 / 0.97 | 1.52 / 1.03 | 0.92 / 0.77 | 2.67 / 1.15 |
| ticket_search | 37.3 / 35.7 | 37.7 / 36.5 | 14.5 / 11.5 | 20.0 / 19.0 |
| perf_unpack_sequence | 154 / 152 | 106 / 105 | 25.8 / 22.4 | 58.9 / 58.5 |
| text_csv_aggregate_small | 7.72 / 7.39 | 6.87 / 6.72 | 2.56 / 2.56 | 8.34 / 8.45 |
| text_csv_cleanup_small | 14.2 / 13.7 | 13.0 / 12.7 | 3.86 / 3.77 | 14.8 / 15.0 |
Peak RSS · MiB · one-shot
Bars: Python 3.15 = midpoint · blue above = less memory, red below = more memory · shared asinh scale (5% transition)