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 17s
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 · e8db9aef41aa73f4f709c15a4bc8a2d198be5ead
/home/runner/work/flying-circus/flying-circus/_runtimes/monty-main/bin/monty
Source build: https://github.com/pydantic/monty@e8db9aef41aa73f4f709c15a4bc8a2d198be5ead; cargo build --locked --release -p monty-runtime --bin monty; rustc 1.99.1 (58cf8f9c3 2026-10-13)bc18eb76f2f759b1abd89a13f781f827f88a4c68dd8437441c1cfade875fa85b
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.92 | 1.88 | 13.9 | 26.4 |
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 | 654 / 655 | 545 / 543 | 141 / 137 | 19.5 / 19.9 |
| portfolio_risk | 153 / 152 | 135 / 135 | 88.2 / 85.4 | 12.9 / 13.2 |
| game_spectral_norm | 692 / 688 | 565 / 563 | 143 / 136 | 23.3 / 22.3 |
| game_fannkuch | 2250 / 2240 | 2180 / 2200 | 457 / 457 | 87.7 / 88.3 |
| expense_report | 0.42 / 0.37 | 0.48 / 0.39 | 1.80 / 0.54 | 0.48 / 0.55 |
| capacity_planning | 85.6 / 83.4 | 66.8 / 64.6 | 18.4 / 16.1 | 4.48 / 4.53 |
| perf_float | 418 / 380 | 515 / 449 | 95.9 / 90.2 | 24.9 / 23.1 |
| order_cleanup | 0.48 / 0.37 | 0.56 / 0.41 | 1.81 / 0.63 | 0.55 / 0.66 |
| api_report | 0.86 / 0.49 | 0.93 / 0.51 | 1.84 / 0.63 | 0.50 / 0.63 |
| perf_json_loads | 1.64 / 1.29 | 1.84 / 1.35 | 3.55 / 2.07 | 1.30 / 1.48 |
| game_regex_dna | failed / failed | failed / failed | 342 / 331 | 218 / 153 |
| memory_string_list_short | 345 / 297 | 309 / 258 | 161 / 156 | 86.3 / 94.0 |
| stdout_lines | 4.00 / 4.22 | 4.18 / 4.32 | 7.10 / 4.91 | 6.74 / 5.02 |
| memory_customer_records | 607 / 502 | 583 / 488 | 259 / 255 | 205 / 145 |
| perf_barnes_hut | 6640 / 6730 | 7220 / 7240 | 1260 / 1230 | 724 / 717 |
| text_csv_aggregate_medium | 593 / 575 | 634 / 615 | 138 / 132 | 99.3 / 77.0 |
| text_json_parse_medium | 15.5 / 11.1 | 16.7 / 12.9 | 15.7 / 13.6 | 10.7 / 10.5 |
| text_json_lines_medium | 20.1 / 19.5 | 21.6 / 21.2 | 26.9 / 25.6 | 18.8 / 19.7 |
| memory_string_list_long | 453 / 391 | 431 / 359 | 172 / 168 | 123 / 151 |
| perf_json_dumps | 14.8 / 12.2 | 16.4 / 13.9 | 19.0 / 16.9 | 24.2 / 19.3 |
| memory_string_index_short | 157 / 128 | 159 / 125 | 114 / 108 | 108 / 77.8 |
| text_csv_cleanup_medium | 1170 / 1150 | 1250 / 1230 | 263 / 257 | 195 / 193 |
| game_meteor_contest | 513 / 514 | 542 / 544 | 123 / 118 | 92.0 / 88.6 |
| text_json_lines_small | 0.95 / 0.63 | 1.00 / 0.71 | 0.79 / 0.82 | 0.77 / 0.79 |
| text_json_transform_small | 0.90 / 0.58 | 0.98 / 0.62 | 0.68 / 0.68 | 0.56 / 0.70 |
| memory_string_index_long | 213 / 182 | 238 / 182 | 125 / 118 | 124 / 99.5 |
| game_pidigits | n/a | n/a | 205 / 205 | 177 / 175 |
| text_line_logs_small | 0.55 / 0.52 | 0.58 / 0.60 | 0.57 / 0.59 | 0.62 / 0.67 |
| text_json_parse_small | 0.80 / 0.49 | 0.87 / 0.49 | 0.47 / 0.50 | 0.42 / 0.56 |
| text_json_transform_medium | 18.5 / 14.2 | 20.3 / 16.0 | 17.1 / 15.8 | 16.1 / 15.7 |
| text_regex_logs_medium | 37.1 / 35.6 | 36.1 / 34.7 | 25.4 / 24.0 | 29.0 / 22.6 |
| text_regex_logs_small | 1.44 / 0.97 | 1.50 / 1.01 | 0.94 / 0.79 | 2.66 / 1.04 |
| text_line_logs_medium | 23.6 / 23.2 | 23.9 / 23.2 | 13.7 / 12.4 | 17.6 / 17.4 |
| ticket_search | 39.2 / 37.2 | 38.2 / 36.2 | 14.3 / 11.6 | 21.1 / 20.5 |
| perf_unpack_sequence | 156 / 155 | 105 / 104 | 26.4 / 23.2 | 58.3 / 58.1 |
| text_csv_aggregate_small | 6.42 / 6.14 | 6.85 / 6.51 | 2.53 / 2.42 | 8.24 / 8.88 |
| text_csv_cleanup_small | 11.9 / 11.4 | 12.8 / 12.3 | 3.84 / 3.72 | 14.8 / 15.5 |
Peak RSS · MiB · one-shot
Bars: Python 3.15 = midpoint · blue above = less memory, red below = more memory · shared asinh scale (5% transition)