Haxe VS Python benchmarks

Current benchmark data was generated on Tue Apr 01 2025, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][4 cores] AMD EPYC 7763 64-Core Processor (Model 1)

* -m in a file name stands for multi-threading or multi-processing

* -i in a file name stands for direct intrinsics usage. (Usage of simd intrinsics via libraries is not counted)

* -ffi in a file name stands for non-stdlib FFI usage

* (You may find time < time(user) + time(sys) for some non-parallelized programs, the overhead is from GC or JIT compiler, which are allowed to take advantage of multi-cores as that's more close to real-world scenarios.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1182ms 8.2ms 96.2MB 1120ms 47ms pypy 3.10.16
haxe 1.hx 1322ms 17ms 143.9MB 1503ms 73ms haxe/cpp 4.3.6
haxe 2.hx 4401ms 35ms 495.1MB 4920ms 270ms haxe/cpp 4.3.6
haxe 1.hx timeout 0.0ms 48.6MB 5667ms 400ms haxe/hl/c 4.3.6
haxe 2.hx timeout 0.0ms 83.2MB 5040ms 660ms haxe/hl/c 4.3.6
haxe 1.hx timeout 0.0ms 50.6MB 7873ms 437ms haxe/hl/jit 1.15.0
haxe 2.hx timeout 0.0ms 130.9MB 7293ms 790ms haxe/hl/jit 1.15.0
python 1.py timeout 0.0ms 40.8MB 4963ms 23ms cpython 3.13.2
python 1.py timeout 0.0ms 40.5MB 4737ms 247ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 90ms 1.5ms 25.6MB 80ms 10ms haxe/cpp 4.3.6
python 1.py 95ms 3.4ms 68.6MB 67ms 17ms pypy 3.10.16
haxe 2.hx 397ms 9.3ms 58.3MB 420ms 27ms haxe/cpp 4.3.6
python 1.py 478ms 2.9ms 11.9MB 453ms 10ms pyston 3.8.12
haxe 1.hx 644ms 1.9ms 8.8MB 610ms 50ms haxe/hl/c 4.3.6
haxe 1.hx 680ms 1.9ms 11.3MB 743ms 57ms haxe/hl/jit 1.15.0
python 1.py 732ms 24ms 12.6MB 720ms 0ms cpython 3.13.2
haxe 2.hx 925ms 6.4ms 13.6MB 817ms 150ms haxe/hl/c 4.3.6
haxe 2.hx 1120ms 30ms 25.1MB 1137ms 180ms haxe/hl/jit 1.15.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1868ms 39ms 88.8MB 1827ms 30ms pypy 3.10.16
python 5-m.py 2268ms 8.6ms 65.4MB 3480ms 850ms pypy 3.10.16
haxe 1.hx 2398ms 8.9ms 25.6MB 2283ms 227ms haxe/cpp 4.3.6
python 5-m.py 2448ms 28ms 12.5MB 3507ms 1017ms pyston 3.8.12
python 1.py 3055ms 111ms 8.1MB 3037ms 0ms pyston 3.8.12
python 5-m.py 3389ms 42ms 13.6MB 4500ms 943ms cpython 3.13.2
python 1.py 4744ms 95ms 8.6MB 4730ms 0ms cpython 3.13.2
haxe 1.hx timeout 0.0ms 3.2MB 4307ms 903ms haxe/hl/c 4.3.6
haxe 1.hx timeout 0.0ms 3.7MB 4363ms 870ms haxe/hl/jit 1.15.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 256ms 2.4ms 25.6MB 223ms 27ms haxe/cpp 4.3.6
python 1.py 256ms 2.4ms 63.3MB 230ms 10ms pypy 3.10.16
python 5-m.py 311ms 0.4ms 12.5MB 400ms 143ms pyston 3.8.12
python 1.py 329ms 29ms 8.1MB 317ms 0ms pyston 3.8.12
python 5-m.py 410ms 2.7ms 13.6MB 490ms 157ms cpython 3.13.2
python 5-m.py 442ms 1.0ms 65.3MB 737ms 313ms pypy 3.10.16
python 1.py 487ms 1.7ms 8.8MB 477ms 0ms cpython 3.13.2
haxe 1.hx 670ms 2.5ms 3.4MB 560ms 123ms haxe/hl/c 4.3.6
haxe 1.hx 679ms 4.7ms 3.8MB 593ms 103ms haxe/hl/jit 1.15.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 2.0ms 0.1ms 2.8MB 0ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 2.5ms 0.3ms 4.4MB 0ms 0ms haxe/cpp 4.3.6
haxe 1.hx 3.7ms 0.2ms 2.8MB 0ms 0ms haxe/hl/jit 1.15.0
python 1.py 12ms 1.2ms 7.6MB 0ms 0ms pyston 3.8.12
python 1.py 14ms 0.7ms 8.6MB 10ms 0ms cpython 3.13.2
python 1.py 28ms 0.6ms 51.6MB 10ms 10ms pypy 3.10.16

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 136ms 4.1ms 20.4MB 120ms 3ms haxe/cpp 4.3.6
haxe 1.hx 142ms 11ms 3.1MB 137ms 0ms haxe/hl/c 4.3.6
python 2.py 148ms 3.4ms 58.2MB 127ms 10ms pypy 3.10.16
haxe 1.hx 157ms 2.5ms 3.8MB 147ms 0ms haxe/hl/jit 1.15.0
python 1.py 180ms 3.2ms 59.4MB 157ms 10ms pypy 3.10.16
python 1.py 716ms 1.5ms 8.9MB 700ms 0ms pyston 3.8.12
python 2.py 872ms 24ms 8.5MB 857ms 0ms pyston 3.8.12
python 1.py 1138ms 18ms 9.3MB 1123ms 0ms cpython 3.13.2
python 2.py 1300ms 16ms 9.0MB 1290ms 0ms cpython 3.13.2

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 2.py 338ms 1.1ms 59.2MB 317ms 10ms pypy 3.10.16
haxe 1.hx 376ms 2.1ms 25.5MB 360ms 3ms haxe/cpp 4.3.6
python 1.py 378ms 4.7ms 60.3MB 353ms 10ms pypy 3.10.16
haxe 1.hx 396ms 1.2ms 3.0MB 383ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 460ms 6.3ms 3.8MB 450ms 0ms haxe/hl/jit 1.15.0
python 1.py 2142ms 16ms 8.9MB 2130ms 0ms pyston 3.8.12
python 2.py 2475ms 28ms 8.5MB 2467ms 0ms pyston 3.8.12
python 1.py 3392ms 6.8ms 9.3MB 3377ms 0ms cpython 3.13.2
python 2.py 3900ms 85ms 9.0MB 3883ms 0ms cpython 3.13.2

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 63ms 0.9ms 12.6MB 50ms 0ms haxe/cpp 4.3.6
haxe 1.hx 68ms 0.3ms 3.0MB 60ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 81ms 0.9ms 3.6MB 70ms 0ms haxe/hl/jit 1.15.0
python 2.py 105ms 2.3ms 58.1MB 80ms 13ms pypy 3.10.16
python 1.py 120ms 1.9ms 58.7MB 97ms 10ms pypy 3.10.16
python 1.py 348ms 3.1ms 8.5MB 337ms 0ms pyston 3.8.12
python 2.py 399ms 6.2ms 8.1MB 390ms 0ms pyston 3.8.12
python 1.py 539ms 1.1ms 9.1MB 530ms 0ms cpython 3.13.2
python 2.py 631ms 13ms 8.6MB 623ms 0ms cpython 3.13.2

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 898ms 3.0ms 95.0MB 997ms 47ms haxe/cpp 4.3.6
python 1.py 2230ms 7.0ms 202.6MB 2107ms 110ms pypy 3.10.16
haxe 1.hx timeout 0.0ms 32.8MB 4963ms 503ms haxe/hl/c 4.3.6
haxe 1.hx timeout 0.0ms 55.0MB 6013ms 480ms haxe/hl/jit 1.15.0
python 1.py timeout 0.0ms 93.9MB 4953ms 33ms cpython 3.13.2
python 1.py timeout 0.0ms 130.4MB 4930ms 53ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 167ms 1.1ms 26.6MB 167ms 10ms haxe/cpp 4.3.6
python 1.py 386ms 6.3ms 105.1MB 327ms 50ms pypy 3.10.16
haxe 1.hx 1301ms 7.8ms 10.8MB 1233ms 140ms haxe/hl/c 4.3.6
haxe 1.hx 1456ms 27ms 20.3MB 1483ms 140ms haxe/hl/jit 1.15.0
python 1.py 3162ms 61ms 37.1MB 3137ms 13ms cpython 3.13.2
python 1.py timeout 0.0ms 48.9MB 4953ms 33ms pyston 3.8.12

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 2.hx 857ms 6.0ms 3.1MB 847ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 1081ms 9.3ms 3.0MB 1070ms 0ms haxe/hl/c 4.3.6
python 2.py 1356ms 8.7ms 60.2MB 1330ms 10ms pypy 3.10.16
haxe 3.hx 1404ms 8.2ms 25.6MB 1597ms 40ms haxe/cpp 4.3.6
haxe 2.hx 2407ms 5.9ms 3.6MB 2397ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 2470ms 3.4ms 3.6MB 2460ms 0ms haxe/hl/jit 1.15.0
python 1.py 2651ms 14ms 57.2MB 2627ms 10ms pypy 3.10.16
haxe 1.hx timeout 0.0ms 4.4MB 4990ms 0ms haxe/cpp 4.3.6
haxe 2.hx timeout 0.0ms 4.4MB 4990ms 0ms haxe/cpp 4.3.6
haxe 3.hx timeout 0.0ms 3.3MB 3940ms 1557ms haxe/hl/c 4.3.6
haxe 3.hx timeout 0.0ms 3.8MB 4090ms 1307ms haxe/hl/jit 1.15.0
python 1.py timeout 0.0ms 8.6MB 4990ms 0ms cpython 3.13.2
python 2.py timeout 0.0ms 8.8MB 4990ms 0ms cpython 3.13.2
python 1.py timeout 0.0ms 8.3MB 4990ms 0ms pyston 3.8.12
python 2.py timeout 0.0ms 8.1MB 4990ms 0ms pyston 3.8.12

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 2.hx 90ms 2.0ms 3.0MB 80ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 113ms 3.0ms 3.0MB 107ms 0ms haxe/hl/c 4.3.6
haxe 3.hx 153ms 0.4ms 25.6MB 157ms 10ms haxe/cpp 4.3.6
python 2.py 180ms 1.9ms 57.9MB 160ms 10ms pypy 3.10.16
haxe 2.hx 246ms 1.2ms 3.6MB 240ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 253ms 3.5ms 3.6MB 243ms 0ms haxe/hl/jit 1.15.0
python 1.py 308ms 8.8ms 57.1MB 287ms 10ms pypy 3.10.16
haxe 3.hx 671ms 2.1ms 3.3MB 513ms 213ms haxe/hl/c 4.3.6
haxe 2.hx 679ms 11ms 4.4MB 670ms 0ms haxe/cpp 4.3.6
haxe 3.hx 778ms 14ms 3.9MB 653ms 187ms haxe/hl/jit 1.15.0
haxe 1.hx 810ms 2.1ms 4.4MB 800ms 0ms haxe/cpp 4.3.6
python 1.py 936ms 17ms 8.3MB 923ms 0ms pyston 3.8.12
python 2.py 1303ms 12ms 8.1MB 1290ms 0ms pyston 3.8.12
python 1.py 3020ms 81ms 8.8MB 3010ms 0ms cpython 3.13.2
python 2.py 3178ms 29ms 8.8MB 3167ms 0ms cpython 3.13.2

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 3927ms 1.7ms 3.4MB 3917ms 0ms haxe/hl/c 4.3.6
haxe 1.hx timeout 0.0ms 7.0MB 4990ms 0ms haxe/cpp 4.3.6
haxe 1.hx timeout 0.0ms 3.9MB 4990ms 0ms haxe/hl/jit 1.15.0
python 8.py timeout 0.0ms 14.6MB 30ms 10ms cpython 3.13.2
python 8.py timeout 0.0ms 96.1MB 793ms 83ms pypy 3.10.16
python 8.py timeout 0.0ms 14.2MB 40ms 7ms pyston 3.8.12

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 992ms 1.9ms 3.1MB 980ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 2399ms 0.8ms 6.6MB 2390ms 0ms haxe/cpp 4.3.6
haxe 1.hx timeout 0.0ms 3.8MB 4987ms 0ms haxe/hl/jit 1.15.0
python 8.py timeout 0.0ms 14.4MB 47ms 10ms cpython 3.13.2
python 8.py timeout 0.0ms 96.8MB 1297ms 187ms pypy 3.10.16
python 8.py timeout 0.0ms 13.7MB 57ms 17ms pyston 3.8.12

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 255ms 2.7ms 3.1MB 243ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 605ms 0.7ms 5.3MB 593ms 0ms haxe/cpp 4.3.6
python 8-m.py 1947ms 12ms 93.2MB 6353ms 250ms pypy 3.10.16
haxe 1.hx 2312ms 0.5ms 3.6MB 2300ms 0ms haxe/hl/jit 1.15.0
python 8.py timeout 0.0ms 14.0MB 80ms 23ms cpython 3.13.2
python 8.py timeout 0.0ms 13.4MB 143ms 33ms pyston 3.8.12