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
- 16m 47s
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 · 56949a4c45f51cedc7a96450782f58a8017e114d
/home/runner/work/flying-circus/flying-circus/_runtimes/monty-main/bin/monty
Source build: https://github.com/pydantic/monty@56949a4c45f51cedc7a96450782f58a8017e114d; cargo build --locked --release -p monty-runtime --bin monty; rustc 1.99.0 (b940084d7 2026-09-28)6f979f2265a947d1ef80bb1c82ded4f7334b0b46cedecb56cd6e70f7bf290b6d
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.78 | 1.66 | 13.0 | 24.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 | 793 / 792 | 562 / 562 | 140 / 137 | 19.2 / 19.1 |
| portfolio_risk | 151 / 150 | 116 / 115 | 88.4 / 85.6 | 12.4 / 13.2 |
| game_spectral_norm | 710 / 707 | 542 / 543 | 142 / 136 | 22.6 / 22.6 |
| game_fannkuch | n/a | n/a | 455 / 457 | 87.4 / 88.0 |
| perf_float | 387 / 347 | 471 / 406 | 96.0 / 90.2 | 24.3 / 19.9 |
| expense_report | 0.40 / 0.34 | 0.44 / 0.35 | 1.76 / 0.55 | 0.44 / 0.58 |
| capacity_planning | 77.0 / 75.1 | 62.6 / 60.7 | 18.1 / 16.0 | 4.37 / 4.49 |
| order_cleanup | 0.47 / 0.39 | 0.55 / 0.41 | 1.81 / 0.58 | 0.52 / 0.63 |
| api_report | 0.83 / 0.47 | 0.89 / 0.44 | 1.78 / 0.60 | 0.50 / 0.63 |
| perf_json_loads | 1.61 / 1.13 | 1.78 / 1.32 | 3.42 / 2.05 | 1.27 / 1.33 |
| game_regex_dna | n/a | failed / failed | 344 / 331 | 217 / 152 |
| stdout_lines | 3.60 / 3.48 | 4.05 / 4.16 | 7.00 / 4.84 | 6.56 / 4.78 |
| memory_string_list_short | 322 / 277 | 297 / 249 | 160 / 153 | 83.9 / 101 |
| perf_barnes_hut | 6940 / 6960 | 7160 / 7150 | 1250 / 1230 | 711 / 682 |
| text_csv_aggregate_medium | 584 / 553 | 685 / 651 | 136 / 129 | 96.4 / 72.2 |
| memory_customer_records | 607 / 549 | 566 / 495 | 257 / 250 | 201 / 146 |
| perf_json_dumps | 14.0 / 11.3 | 17.2 / 14.4 | 19.0 / 16.8 | 23.7 / 19.7 |
| text_json_parse_medium | 14.9 / 10.7 | 16.9 / 12.7 | 15.6 / 13.0 | 10.6 / 10.4 |
| memory_string_list_long | 438 / 388 | 417 / 349 | 173 / 165 | 120 / 147 |
| memory_string_index_short | 150 / 118 | 146 / 110 | 111 / 94.6 | 106 / 65.9 |
| text_json_lines_medium | 20.1 / 19.2 | 22.4 / 21.5 | 26.8 / 25.2 | 19.0 / 19.0 |
| game_meteor_contest | n/a | failed / failed | 122 / 118 | 91.8 / 86.7 |
| text_json_lines_small | 0.93 / 0.61 | 0.99 / 0.66 | 0.78 / 0.82 | 0.72 / 0.79 |
| text_csv_cleanup_medium | 1150 / 1090 | 1360 / 1310 | 260 / 252 | 195 / 189 |
| text_json_transform_small | 0.87 / 0.51 | 1.00 / 0.58 | 0.68 / 0.68 | 0.55 / 0.65 |
| text_json_parse_small | 0.75 / 0.42 | 0.81 / 0.46 | 0.47 / 0.48 | 0.39 / 0.53 |
| game_pidigits | n/a | n/a | 205 / 204 | 177 / 174 |
| text_line_logs_small | 0.58 / 0.51 | 0.59 / 0.58 | 0.55 / 0.57 | 0.60 / 0.68 |
| text_json_transform_medium | 18.1 / 13.5 | 20.4 / 15.6 | 17.0 / 14.3 | 15.8 / 14.8 |
| text_regex_logs_medium | 38.6 / 37.4 | 37.7 / 36.5 | 25.2 / 23.5 | 28.6 / 22.0 |
| memory_string_index_long | 215 / 170 | 219 / 162 | 123 / 105 | 119 / 98.2 |
| text_line_logs_medium | 27.2 / 26.5 | 25.1 / 24.2 | 13.6 / 12.5 | 17.3 / 16.5 |
| text_regex_logs_small | 1.44 / 0.97 | 1.50 / 0.95 | 0.91 / 0.74 | 2.59 / 0.97 |
| ticket_search | 41.5 / 39.6 | 36.9 / 34.8 | 14.2 / 11.2 | 20.4 / 19.1 |
| perf_unpack_sequence | 338 / 346 | 104 / 103 | 25.9 / 23.0 | 58.0 / 57.1 |
| text_csv_aggregate_small | 6.37 / 6.05 | 7.43 / 7.00 | 2.52 / 2.41 | 8.35 / 8.27 |
| text_csv_cleanup_small | 11.8 / 11.3 | 13.9 / 13.4 | 3.88 / 3.70 | 14.8 / 15.2 |
Peak RSS · MiB · one-shot
Bars: Python 3.15 = midpoint · blue above = less memory, red below = more memory · shared asinh scale (5% transition)