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
- 17m 39s
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 · @main: Monty 1.1.0 · Python 3.15: CPython 3.15.0 · 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 · 4246aa75724b133e55f8a82e2cf5dfc0120e62e8
/home/runner/work/flying-circus/flying-circus/_runtimes/monty-main/bin/monty
Source build: https://github.com/pydantic/monty@4246aa75724b133e55f8a82e2cf5dfc0120e62e8; cargo build --locked --release -p monty-runtime --bin monty; rustc 1.99.0 (b940084d7 2026-09-28)9da5ff413932bbee02d63323c0c84804da457b4aa2a68e83ffd0a5204a8c7479
python3.15 · cpython · Python 3.15.0
/opt/hostedtoolcache/Python/3.15.0/x64/bin/python3.15
Source revision and compiler flags unverifiedfd580ad81787ecc7e71f91543dbe52ffccd3e5c4cf286565eceb539081e85992
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.71 | 1.63 | 12.9 | 24.3 |
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 | 761 / 760 | 549 / 549 | 140 / 136 | 19.1 / 19.0 |
| portfolio_risk | 146 / 145 | 110 / 109 | 87.1 / 85.0 | 12.3 / 13.6 |
| game_spectral_norm | 695 / 696 | 510 / 508 | 142 / 136 | 22.2 / 21.8 |
| game_fannkuch | n/a | 2220 / 2220 | 460 / 457 | 87.1 / 91.1 |
| expense_report | 0.38 / 0.35 | 0.46 / 0.38 | 1.74 / 0.53 | 0.42 / 0.56 |
| perf_float | 382 / 343 | 475 / 417 | 94.5 / 88.6 | 24.0 / 20.1 |
| capacity_planning | 77.6 / 75.4 | 62.2 / 60.2 | 18.1 / 16.1 | 4.31 / 4.63 |
| order_cleanup | 0.45 / 0.36 | 0.53 / 0.41 | 1.80 / 0.64 | 0.50 / 0.61 |
| api_report | 0.80 / 0.44 | 0.88 / 0.45 | 1.77 / 0.64 | 0.47 / 0.62 |
| perf_json_loads | 1.58 / 1.15 | 1.80 / 1.33 | 3.38 / 2.05 | 1.23 / 1.34 |
| game_regex_dna | n/a | failed / failed | 341 / 330 | 215 / 154 |
| perf_barnes_hut | 7000 / 6930 | 6950 / 6930 | 1260 / 1230 | 706 / 577 |
| stdout_lines | 3.60 / 3.78 | 4.04 / 4.19 | 6.87 / 4.68 | 6.44 / 4.67 |
| memory_string_list_short | 329 / 291 | 313 / 269 | 160 / 147 | 84.7 / 101 |
| memory_customer_records | 600 / 549 | 565 / 460 | 258 / 258 | 199 / 146 |
| text_csv_aggregate_medium | 579 / 558 | 661 / 639 | 136 / 130 | 94.7 / 78.6 |
| memory_string_index_short | 149 / 125 | 147 / 126 | 106 / 94.6 | 102 / 64.7 |
| text_json_parse_medium | 14.8 / 10.7 | 16.5 / 12.3 | 15.4 / 13.5 | 10.5 / 9.73 |
| perf_json_dumps | 14.1 / 11.5 | 16.3 / 13.6 | 18.8 / 16.7 | 23.5 / 19.7 |
| memory_string_list_long | 443 / 410 | 427 / 361 | 171 / 157 | 119 / 150 |
| text_json_lines_medium | 21.0 / 20.2 | 22.1 / 21.4 | 26.6 / 25.4 | 18.6 / 19.2 |
| text_json_lines_small | 0.92 / 0.60 | 0.99 / 0.68 | 0.78 / 0.83 | 0.73 / 0.76 |
| game_meteor_contest | n/a | failed / failed | 121 / 118 | 90.1 / 86.5 |
| text_csv_cleanup_medium | 1130 / 1110 | 1300 / 1280 | 260 / 253 | 193 / 189 |
| text_json_transform_small | 0.86 / 0.54 | 0.93 / 0.57 | 0.68 / 0.67 | 0.53 / 0.66 |
| text_json_parse_small | 0.75 / 0.44 | 0.80 / 0.48 | 0.47 / 0.49 | 0.38 / 0.53 |
| game_pidigits | n/a | n/a | 205 / 204 | 176 / 178 |
| text_line_logs_small | 0.57 / 0.53 | 0.56 / 0.58 | 0.55 / 0.59 | 0.61 / 0.70 |
| text_json_transform_medium | 18.0 / 13.6 | 19.8 / 15.5 | 16.7 / 14.7 | 15.8 / 14.7 |
| text_regex_logs_medium | 38.3 / 36.8 | 36.6 / 35.5 | 25.2 / 23.8 | 28.2 / 22.5 |
| memory_string_index_long | 212 / 176 | 208 / 176 | 117 / 106 | 117 / 100 |
| text_regex_logs_small | 1.41 / 0.94 | 1.47 / 0.98 | 0.91 / 0.77 | 2.58 / 0.97 |
| text_line_logs_medium | 26.9 / 26.3 | 24.0 / 23.5 | 13.5 / 12.2 | 17.3 / 16.6 |
| ticket_search | 41.0 / 39.1 | 37.1 / 35.4 | 13.9 / 11.2 | 20.1 / 19.4 |
| perf_unpack_sequence | 332 / 338 | 103 / 102 | 25.9 / 23.0 | 57.8 / 58.3 |
| text_csv_aggregate_small | 6.35 / 6.02 | 7.19 / 6.87 | 2.50 / 2.42 | 8.17 / 8.50 |
| text_csv_cleanup_small | 11.7 / 11.3 | 13.4 / 13.0 | 3.84 / 3.70 | 14.6 / 15.1 |
Peak RSS · MiB · one-shot
Bars: Python 3.15 = midpoint · blue above = less memory, red below = more memory · shared asinh scale (5% transition)