Application benchmarks
- CPU
- AMD EPYC 9V45 96-Core Processor · 4 logical CPUs
- OS
- Linux-6.17.0-1022-azure-x86_64-with-glibc2.39
- Samples
- 20
- Parallel jobs
- 1
- Run duration
- 16m 23s
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.1.0 · Monty main: Monty 1.1.0 · CPython 3.14.8 · PyPy 8.0.0
Runtimes and build details
monty · monty · 1.1.0
/home/runner/work/flying-circus/flying-circus/_runtimes/monty/bin/monty
Prebuilt PyPI wheel: pydantic-monty-runtime==1.1.0; source revision and compiler flags unverifiedc9d19e7256886558c67678582d0d223de3eb05232f69da9da657ab9e090f3f35
monty-main · monty · c95d44218822130eebd6991443d932ea8eb3fc11
/home/runner/work/flying-circus/flying-circus/_runtimes/monty-main/bin/monty
Source build: https://github.com/pydantic/monty@c95d44218822130eebd6991443d932ea8eb3fc11; cargo build --locked --release -p monty-runtime --bin monty; rustc 1.99.0 (b940084d7 2026-09-28)ee5dde3cf36acead98b665d6224771bd1cbf10d4e295de93b36a0de05cd1de9f
cpython · cpython · Python 3.14.8
/opt/hostedtoolcache/Python/3.14.8/x64/bin/python3.14
Source revision and compiler flags unverifieda5230d8adbd26c2185d77fb003597c4ee9c44c2369fc179122ff7c3a3a58ae59
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 | Monty main | CPython | PyPy |
|---|---|---|---|
| 1.24 | 1.16 | 8.11 | 15.0 |
Runtime · ms · one-shot / repeated
Bars: cpython = midpoint · blue above = faster, red below = slower · shared asinh scale (5% transition)
| Workload | Monty | Monty main | CPython | PyPy |
|---|---|---|---|---|
| portfolio_risk | 75.5 / 75.1 | 63.0 / 63.8 | 45.4 / 44.2 | 6.80 / 7.70 |
| game_nbody | 456 / 459 | 385 / 384 | 64.7 / 63.7 | 10.7 / 10.8 |
| game_spectral_norm | 371 / 373 | 302 / 304 | 67.0 / 65.8 | 12.5 / 12.6 |
| game_fannkuch | n/a | n/a | 236 / 235 | 51.1 / 51.2 |
| expense_report | 0.30 / 0.22 | 0.37 / 0.27 | 1.07 / 0.37 | 0.24 / 0.40 |
| api_report | 0.63 / 0.35 | 0.70 / 0.41 | 1.12 / 0.45 | 0.27 / 0.48 |
| capacity_planning | 36.1 / 34.8 | 36.3 / 35.0 | 10.4 / 9.06 | 2.52 / 2.79 |
| order_cleanup | 0.38 / 0.30 | 0.46 / 0.35 | 1.13 / 0.43 | 0.28 / 0.41 |
| perf_float | 227 / 199 | 254 / 210 | 50.6 / 44.6 | 13.5 / 13.0 |
| perf_json_loads | 1.11 / 0.79 | 1.24 / 0.91 | 2.07 / 1.24 | 0.70 / 0.80 |
| perf_barnes_hut | 3950 / 3960 | 3850 / 3860 | 592 / 588 | 378 / 306 |
| game_regex_dna | n/a | n/a | 177 / 170 | 127 / 91.8 |
| stdout_lines | 2.04 / 1.99 | 2.38 / 2.29 | 3.56 / 2.25 | 3.59 / 2.89 |
| memory_string_list_short | 183 / 162 | 184 / 151 | 81.6 / 73.7 | 49.7 / 56.1 |
| perf_gc_traversal | n/a | n/a | 12.9 / 13.4 | 7.91 / 1100 |
| text_csv_aggregate_medium | 332 / 318 | 340 / 329 | 67.4 / 63.0 | 55.1 / 41.4 |
| game_pidigits | n/a | n/a | 141 / 141 | 96.6 / 96.5 |
| perf_json_dumps | 8.66 / 6.97 | 9.70 / 7.86 | 11.4 / 10.1 | 12.4 / 10.4 |
| text_json_parse_medium | 9.80 / 7.09 | 10.3 / 7.51 | 9.06 / 7.92 | 6.33 / 6.25 |
| memory_customer_records | 414 / 361 | 377 / 337 | 140 / 138 | 126 / 97.3 |
| text_json_transform_small | 0.62 / 0.37 | 0.69 / 0.42 | 0.42 / 0.46 | 0.30 / 0.43 |
| text_json_lines_medium | 12.0 / 11.4 | 12.1 / 11.4 | 15.0 / 14.2 | 10.9 / 11.1 |
| text_json_parse_small | 0.51 / 0.27 | 0.54 / 0.29 | 0.27 / 0.30 | 0.20 / 0.33 |
| game_meteor_contest | n/a | n/a | 67.8 / 66.1 | 51.1 / 49.6 |
| text_csv_cleanup_medium | 647 / 627 | 672 / 658 | 128 / 123 | 110 / 96.0 |
| memory_string_list_long | 244 / 210 | 257 / 226 | 90.0 / 81.5 | 72.6 / 75.7 |
| text_json_lines_small | 0.63 / 0.39 | 0.67 / 0.42 | 0.46 / 0.48 | 0.41 / 0.48 |
| memory_string_index_short | 82.4 / 65.5 | 84.8 / 68.1 | 54.7 / 46.7 | 63.9 / 39.4 |
| memory_string_index_long | 115 / 91.6 | 124 / 101 | 62.4 / 53.8 | 72.0 / 45.9 |
| text_json_transform_medium | 11.7 / 8.86 | 12.1 / 9.17 | 9.73 / 8.28 | 9.05 / 8.73 |
| text_line_logs_small | 0.40 / 0.36 | 0.40 / 0.35 | 0.30 / 0.31 | 0.32 / 0.40 |
| text_regex_logs_medium | 21.8 / 20.8 | 20.1 / 19.2 | 12.5 / 11.6 | 15.7 / 12.7 |
| text_regex_logs_small | 1.00 / 0.63 | 1.04 / 0.66 | 0.53 / 0.43 | 1.48 / 0.62 |
| text_line_logs_medium | 17.1 / 16.8 | 14.9 / 14.5 | 7.06 / 5.98 | 10.4 / 9.85 |
| ticket_search | 24.2 / 23.1 | 22.8 / 21.8 | 7.61 / 6.78 | 11.6 / 11.7 |
| perf_unpack_sequence | 217 / 218 | 216 / 215 | 13.4 / 11.9 | 30.3 / 30.4 |
| text_csv_aggregate_small | 3.72 / 3.53 | 3.85 / 3.66 | 1.37 / 1.36 | 4.57 / 4.91 |
| text_csv_cleanup_small | 6.76 / 6.48 | 7.11 / 6.83 | 2.03 / 2.03 | 8.05 / 8.68 |
Peak RSS · MiB · one-shot
Bars: cpython = midpoint · blue above = less memory, red below = more memory · shared asinh scale (5% transition)