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 11s
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.2.0 · @main: Monty 1.2.0 · Python 3.15: CPython 3.15.0 · PyPy 8.0.0
Runtimes and build details
monty · monty · 1.2.0
/home/runner/work/flying-circus/flying-circus/_runtimes/monty/bin/monty
Prebuilt PyPI wheel: pydantic-monty-runtime==1.2.0; source revision and compiler flags unverifiedd36ff64238568cd0fa6e152f5359512b7cd78acc000a0659fe1823ebf54b85b5
monty-main · monty · dad2fa6661a01efd9753dd1fa944f8cb3618be9c
/home/runner/work/flying-circus/flying-circus/_runtimes/monty-main/bin/monty
Source build: https://github.com/pydantic/monty@dad2fa6661a01efd9753dd1fa944f8cb3618be9c; cargo build --locked --release -p monty-runtime --bin monty; rustc 1.99.1 (58cf8f9c3 2026-10-13)6bb8bd2bd3b1190e033f51ce0846d8ceff9e9fb53958cd8cc9d2c8c71b67faf9
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.88 | 1.80 | 13.6 | 25.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 | 667 / 666 | 567 / 561 | 141 / 137 | 19.3 / 19.5 |
| portfolio_risk | 154 / 154 | 145 / 143 | 88.0 / 85.3 | 12.6 / 13.5 |
| game_spectral_norm | 718 / 717 | 606 / 606 | 144 / 136 | 22.4 / 22.1 |
| game_fannkuch | 2250 / 2250 | 2220 / 2220 | 458 / 456 | 87.7 / 88.2 |
| perf_float | 413 / 371 | 508 / 440 | 97.3 / 92.4 | 24.4 / 21.4 |
| expense_report | 0.42 / 0.35 | 0.48 / 0.37 | 1.78 / 0.55 | 0.47 / 0.55 |
| capacity_planning | 79.6 / 76.9 | 67.2 / 65.1 | 18.3 / 16.3 | 4.44 / 4.32 |
| order_cleanup | 0.48 / 0.36 | 0.57 / 0.42 | 1.81 / 0.61 | 0.53 / 0.65 |
| api_report | 0.84 / 0.45 | 0.91 / 0.49 | 1.81 / 0.59 | 0.50 / 0.65 |
| perf_json_loads | 1.65 / 1.24 | 1.83 / 1.37 | 3.47 / 2.09 | 1.28 / 1.41 |
| game_regex_dna | failed / failed | failed / failed | 344 / 331 | 219 / 153 |
| memory_string_list_short | 316 / 276 | 313 / 264 | 166 / 150 | 84.3 / 95.6 |
| perf_barnes_hut | 6540 / 6410 | 7280 / 7220 | 1260 / 1240 | 719 / 662 |
| stdout_lines | 3.82 / 4.00 | 4.02 / 3.23 | 7.08 / 4.88 | 6.59 / 4.83 |
| text_csv_aggregate_medium | 590 / 576 | 640 / 617 | 139 / 133 | 97.2 / 75.6 |
| memory_customer_records | 583 / 493 | 585 / 516 | 259 / 255 | 202 / 149 |
| memory_string_index_short | 149 / 124 | 157 / 128 | 115 / 105 | 106 / 71.0 |
| text_json_parse_medium | 15.8 / 11.9 | 17.3 / 13.2 | 15.8 / 13.6 | 10.7 / 10.3 |
| memory_string_list_long | 424 / 382 | 440 / 400 | 175 / 157 | 119 / 146 |
| text_json_lines_medium | 19.9 / 19.1 | 22.7 / 22.0 | 27.2 / 25.8 | 18.9 / 19.0 |
| perf_json_dumps | 14.5 / 11.9 | 16.6 / 14.1 | 19.0 / 17.0 | 23.9 / 19.6 |
| game_meteor_contest | 513 / 512 | 542 / 540 | 122 / 121 | 91.4 / 87.5 |
| text_csv_cleanup_medium | 1160 / 1130 | 1250 / 1220 | 262 / 257 | 195 / 198 |
| text_json_lines_small | 0.95 / 0.64 | 1.03 / 0.69 | 0.79 / 0.81 | 0.76 / 0.78 |
| text_json_transform_small | 0.89 / 0.55 | 0.97 / 0.59 | 0.67 / 0.68 | 0.56 / 0.66 |
| text_json_parse_small | 0.79 / 0.49 | 0.82 / 0.49 | 0.48 / 0.49 | 0.40 / 0.51 |
| game_pidigits | n/a | n/a | 205 / 205 | 177 / 179 |
| text_line_logs_small | 0.55 / 0.54 | 0.60 / 0.54 | 0.56 / 0.60 | 0.63 / 0.69 |
| text_json_transform_medium | 18.3 / 13.9 | 20.6 / 16.6 | 17.1 / 15.4 | 15.8 / 15.0 |
| memory_string_index_long | 207 / 174 | 224 / 184 | 126 / 116 | 122 / 106 |
| text_regex_logs_medium | 36.8 / 35.2 | 37.2 / 36.1 | 25.4 / 23.7 | 28.5 / 22.7 |
| text_regex_logs_small | 1.42 / 0.95 | 1.47 / 0.98 | 0.93 / 0.77 | 2.65 / 1.03 |
| text_line_logs_medium | 24.0 / 23.5 | 23.0 / 22.6 | 13.7 / 12.8 | 17.4 / 17.0 |
| ticket_search | 39.0 / 36.7 | 38.1 / 36.1 | 14.2 / 11.5 | 20.5 / 20.0 |
| perf_unpack_sequence | 156 / 156 | 104 / 104 | 26.2 / 23.0 | 58.4 / 58.9 |
| text_csv_aggregate_small | 6.45 / 6.08 | 6.89 / 6.54 | 2.49 / 2.44 | 8.30 / 8.56 |
| text_csv_cleanup_small | 12.0 / 11.5 | 12.9 / 12.4 | 3.83 / 3.77 | 14.9 / 15.3 |
Peak RSS · MiB · one-shot
Bars: Python 3.15 = midpoint · blue above = less memory, red below = more memory · shared asinh scale (5% transition)