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 40s
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 · e74249051f6bb3df88fe8a0178e022272e14c1c6
/home/runner/work/flying-circus/flying-circus/_runtimes/monty-main/bin/monty
Source build: https://github.com/pydantic/monty@e74249051f6bb3df88fe8a0178e022272e14c1c6; cargo build --locked --release -p monty-runtime --bin monty; rustc 1.99.0 (b940084d7 2026-09-28)05ab1e28d68cf4e7cf218a8902cb81b8fad4890b1230ff9cc979f81d908a7b87
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.43 | 1.39 | 8.92 | 17.2 |
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 | 76.5 / 76.2 | 63.6 / 63.0 | 46.0 / 44.6 | 7.28 / 7.75 |
| game_nbody | 444 / 439 | 426 / 420 | 66.0 / 65.2 | 11.0 / 10.9 |
| game_spectral_norm | 365 / 356 | 326 / 321 | 69.6 / 68.6 | 13.2 / 13.7 |
| game_fannkuch | n/a | n/a | 241 / 234 | 53.3 / 51.6 |
| expense_report | 0.34 / 0.23 | 0.40 / 0.29 | 1.13 / 0.35 | 0.27 / 0.40 |
| capacity_planning | 36.9 / 35.0 | 37.4 / 35.7 | 10.8 / 9.57 | 2.70 / 2.99 |
| api_report | 0.67 / 0.35 | 0.75 / 0.39 | 1.17 / 0.43 | 0.30 / 0.52 |
| order_cleanup | 0.41 / 0.32 | 0.48 / 0.35 | 1.17 / 0.45 | 0.31 / 0.49 |
| perf_float | 244 / 208 | 262 / 211 | 53.5 / 46.6 | 14.6 / 13.5 |
| perf_json_loads | 1.18 / 0.85 | 1.33 / 0.92 | 2.13 / 1.25 | 0.73 / 0.92 |
| perf_barnes_hut | 4070 / 4010 | 3980 / 3910 | 610 / 596 | 397 / 251 |
| game_regex_dna | n/a | n/a | 182 / 174 | 133 / 93.7 |
| stdout_lines | 2.17 / 2.19 | 2.50 / 2.33 | 3.71 / 2.27 | 3.82 / 3.07 |
| memory_string_list_short | 202 / 179 | 191 / 163 | 83.7 / 74.3 | 51.7 / 73.7 |
| perf_json_dumps | 8.68 / 6.80 | 9.91 / 7.83 | 11.8 / 10.3 | 13.0 / 11.1 |
| game_pidigits | n/a | n/a | 145 / 141 | 98.7 / 99.6 |
| memory_customer_records | 437 / 351 | 414 / 358 | 147 / 142 | 136 / 97.3 |
| text_json_parse_medium | 10.0 / 7.09 | 10.6 / 7.63 | 9.79 / 8.61 | 6.80 / 6.76 |
| text_csv_aggregate_medium | 350 / 320 | 365 / 331 | 70.5 / 64.0 | 60.1 / 46.1 |
| text_json_transform_small | 0.66 / 0.40 | 0.74 / 0.44 | 0.45 / 0.46 | 0.33 / 0.46 |
| text_json_lines_medium | 12.6 / 12.0 | 12.4 / 11.7 | 15.6 / 14.4 | 11.6 / 12.6 |
| game_meteor_contest | n/a | n/a | 69.5 / 66.1 | 53.3 / 49.6 |
| text_json_parse_small | 0.55 / 0.28 | 0.58 / 0.30 | 0.29 / 0.32 | 0.22 / 0.36 |
| text_csv_cleanup_medium | 710 / 630 | 746 / 678 | 134 / 125 | 115 / 101 |
| text_json_lines_small | 0.68 / 0.42 | 0.73 / 0.45 | 0.49 / 0.51 | 0.44 / 0.50 |
| memory_string_list_long | 265 / 229 | 263 / 231 | 92.5 / 83.4 | 76.0 / 76.1 |
| memory_string_index_short | 98.0 / 76.6 | 94.6 / 72.2 | 58.8 / 48.6 | 70.5 / 41.0 |
| text_json_transform_medium | 12.0 / 8.87 | 12.6 / 9.25 | 10.3 / 9.17 | 9.78 / 8.97 |
| memory_string_index_long | 134 / 102 | 142 / 103 | 69.6 / 54.1 | 81.2 / 56.5 |
| text_line_logs_small | 0.42 / 0.38 | 0.44 / 0.37 | 0.32 / 0.35 | 0.35 / 0.41 |
| text_regex_logs_medium | 22.7 / 21.8 | 21.2 / 20.2 | 12.9 / 11.6 | 16.7 / 13.2 |
| text_regex_logs_small | 1.05 / 0.65 | 1.10 / 0.70 | 0.54 / 0.45 | 1.56 / 0.60 |
| text_line_logs_medium | 17.2 / 16.6 | 16.0 / 15.6 | 7.47 / 6.08 | 11.0 / 10.2 |
| ticket_search | 24.1 / 22.2 | 25.5 / 23.5 | 7.93 / 6.18 | 12.2 / 12.2 |
| perf_unpack_sequence | 217 / 216 | 222 / 219 | 13.8 / 12.0 | 31.5 / 31.0 |
| text_csv_aggregate_small | 3.79 / 3.56 | 3.94 / 3.69 | 1.41 / 1.43 | 4.86 / 5.07 |
| text_csv_cleanup_small | 6.75 / 6.42 | 7.22 / 6.92 | 2.08 / 2.05 | 8.39 / 9.07 |
Peak RSS · MiB · one-shot
Bars: cpython = midpoint · blue above = less memory, red below = more memory · shared asinh scale (5% transition)