Haxe VS Python benchmarks

Current benchmark data was generated on Fri Sep 30 2022, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz (Model 85)

* -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 1760ms 27ms 220.4MB 1617ms 123ms pypy 3.8.13
haxe 1.hx 1986ms 38ms 146.0MB 2520ms 67ms haxe/cpp 4.2.5
haxe 2.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/cpp 4.2.5
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/c 4.2.5
haxe 2.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/jit 1.12.0
haxe 2.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/jit 1.12.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 120ms 2.8ms 27.5MB 123ms 7ms haxe/cpp 4.2.5
python 1.py 143ms 21ms 78.6MB 97ms 23ms pypy 3.8.13
haxe 2.hx 533ms 4.3ms 60.2MB 650ms 27ms haxe/cpp 4.2.5
python 1.py 672ms 1.8ms 12.0MB 647ms 10ms pyston 3.8.12
haxe 1.hx 868ms 1.6ms 7.8MB 833ms 17ms haxe/hl/c 4.2.5
haxe 1.hx 1025ms 4.8ms 11.3MB 977ms 33ms haxe/hl/jit 1.12.0
haxe 2.hx 1372ms 9.2ms 13.4MB 1260ms 97ms haxe/hl/c 4.2.5
python 1.py 1631ms 5.5ms 11.8MB 1610ms 3ms cpython 3.10.7
haxe 2.hx 1694ms 20ms 24.6MB 1530ms 143ms haxe/hl/jit 1.12.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 3029ms 165ms 89.2MB 2983ms 27ms pypy 3.8.13
haxe 1.hx 3164ms 18ms 27.5MB 3210ms 243ms haxe/cpp 4.2.5
python 5-m.py 3558ms 20ms 12.6MB 5183ms 1190ms pyston 3.8.12
python 1.py 3999ms 58ms 7.9MB 3983ms 0ms pyston 3.8.12
python 5-m.py 4619ms 10ms 12.1MB 6683ms 1273ms cpython 3.10.7
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/jit 1.12.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 5-m.py timeout 0.0ms 0.0MB 0ms 0ms pypy 3.8.13

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 336ms 2.9ms 27.5MB 320ms 23ms haxe/cpp 4.2.5
python 1.py 387ms 10.0ms 75.2MB 357ms 17ms pypy 3.8.13
python 1.py 410ms 0.9ms 7.9MB 397ms 0ms pyston 3.8.12
python 5-m.py 438ms 9.0ms 12.7MB 557ms 160ms pyston 3.8.12
python 5-m.py 575ms 55ms 12.1MB 727ms 160ms cpython 3.10.7
python 1.py 714ms 3.9ms 7.8MB 700ms 0ms cpython 3.10.7
haxe 1.hx 836ms 21ms 3.3MB 757ms 63ms haxe/hl/c 4.2.5
haxe 1.hx 859ms 3.8ms 3.8MB 803ms 37ms haxe/hl/jit 1.12.0
python 5-m.py 916ms 11ms 78.8MB 1077ms 460ms pypy 3.8.13

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 3.2ms 0.8ms 3.0MB 0ms 0ms haxe/cpp 4.2.5
haxe 1.hx 3.9ms 0.2ms 3.3MB 0ms 0ms haxe/hl/jit 1.12.0
haxe 1.hx 4.1ms 2.2ms 2.6MB 0ms 0ms haxe/hl/c 4.2.5
python 1.py 14ms 0.9ms 7.4MB 10ms 0ms cpython 3.10.7
python 1.py 15ms 2.2ms 7.2MB 10ms 0ms pyston 3.8.12
python 1.py 38ms 0.5ms 55.0MB 12ms 12ms pypy 3.8.13

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 189ms 1.4ms 22.2MB 177ms 0ms haxe/cpp 4.2.5
haxe 1.hx 211ms 1.2ms 2.9MB 200ms 0ms haxe/hl/c 4.2.5
python 2.py 238ms 4.4ms 73.9MB 200ms 20ms pypy 3.8.13
haxe 1.hx 241ms 0.4ms 3.8MB 223ms 0ms haxe/hl/jit 1.12.0
python 1.py 278ms 1.8ms 75.5MB 240ms 20ms pypy 3.8.13
python 1.py 937ms 1.0ms 8.9MB 920ms 0ms pyston 3.8.12
python 2.py 1082ms 6.0ms 8.7MB 1070ms 0ms pyston 3.8.12
python 1.py 1759ms 7.5ms 8.4MB 1743ms 3ms cpython 3.10.7
python 2.py 2552ms 33ms 8.3MB 2537ms 0ms cpython 3.10.7

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 542ms 12ms 27.4MB 533ms 7ms haxe/cpp 4.2.5
python 2.py 561ms 2.2ms 74.9MB 533ms 13ms pypy 3.8.13
python 1.py 613ms 0.9ms 76.0MB 577ms 23ms pypy 3.8.13
haxe 1.hx 626ms 1.6ms 3.0MB 613ms 0ms haxe/hl/c 4.2.5
haxe 1.hx 719ms 9.8ms 3.7MB 707ms 0ms haxe/hl/jit 1.12.0
python 1.py 2803ms 51ms 8.9MB 2783ms 0ms pyston 3.8.12
python 2.py 3188ms 7.1ms 8.6MB 3177ms 0ms pyston 3.8.12
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 2.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 87ms 1.8ms 14.2MB 67ms 7ms haxe/cpp 4.2.5
haxe 1.hx 105ms 2.4ms 2.9MB 93ms 0ms haxe/hl/c 4.2.5
haxe 1.hx 119ms 0.9ms 3.8MB 110ms 0ms haxe/hl/jit 1.12.0
python 2.py 166ms 0.5ms 74.4MB 137ms 13ms pypy 3.8.13
python 1.py 184ms 1.9ms 74.5MB 153ms 10ms pypy 3.8.13
python 1.py 455ms 3.9ms 8.7MB 440ms 0ms pyston 3.8.12
python 2.py 503ms 2.3ms 8.2MB 487ms 0ms pyston 3.8.12
python 1.py 836ms 3.1ms 7.9MB 807ms 3ms cpython 3.10.7
python 2.py 1255ms 20ms 7.3MB 1243ms 0ms cpython 3.10.7

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 1381ms 4.3ms 97.0MB 1660ms 47ms haxe/cpp 4.2.5
python 1.py 2706ms 50ms 233.4MB 2520ms 167ms pypy 3.8.13
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/jit 1.12.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 248ms 4.7ms 28.6MB 253ms 10ms haxe/cpp 4.2.5
python 1.py 389ms 1.4ms 150.9MB 323ms 47ms pypy 3.8.13
haxe 1.hx 1742ms 6.1ms 15.5MB 1663ms 60ms haxe/hl/c 4.2.5
haxe 1.hx 2026ms 52ms 20.4MB 1913ms 97ms haxe/hl/jit 1.12.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 2.hx 1083ms 6.6ms 2.6MB 1070ms 0ms haxe/hl/c 4.2.5
haxe 1.hx 1505ms 76ms 2.6MB 1493ms 0ms haxe/hl/c 4.2.5
python 2.py 2105ms 22ms 74.5MB 2077ms 10ms pypy 3.8.13
haxe 3.hx 2176ms 1.2ms 25.6MB 2470ms 43ms haxe/cpp 4.2.5
haxe 2.hx 2441ms 1.5ms 3.4MB 2427ms 0ms haxe/hl/jit 1.12.0
haxe 1.hx 2598ms 0.0ms 3.3MB 2587ms 0ms haxe/hl/jit 1.12.0
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/cpp 4.2.5
haxe 2.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/cpp 4.2.5
haxe 3.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/c 4.2.5
haxe 3.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/jit 1.12.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 2.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pypy 3.8.13
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12
python 2.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 2.hx 113ms 3.3ms 2.6MB 100ms 0ms haxe/hl/c 4.2.5
haxe 1.hx 149ms 1.1ms 2.6MB 140ms 0ms haxe/hl/c 4.2.5
haxe 3.hx 237ms 2.0ms 27.6MB 250ms 7ms haxe/cpp 4.2.5
haxe 2.hx 255ms 8.1ms 3.4MB 243ms 0ms haxe/hl/jit 1.12.0
haxe 1.hx 268ms 6.6ms 3.3MB 253ms 0ms haxe/hl/jit 1.12.0
python 2.py 278ms 3.4ms 74.0MB 247ms 13ms pypy 3.8.13
python 1.py 577ms 5.3ms 73.4MB 550ms 13ms pypy 3.8.13
haxe 3.hx 762ms 4.4ms 3.2MB 683ms 60ms haxe/hl/c 4.2.5
haxe 2.hx 833ms 0.9ms 4.4MB 820ms 0ms haxe/cpp 4.2.5
haxe 3.hx 903ms 6.5ms 3.7MB 830ms 60ms haxe/hl/jit 1.12.0
haxe 1.hx 1072ms 1.7ms 3.1MB 1060ms 0ms haxe/cpp 4.2.5
python 1.py 1154ms 8.4ms 8.3MB 1140ms 0ms pyston 3.8.12
python 2.py 1573ms 0.7ms 8.2MB 1560ms 0ms pyston 3.8.12
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 2.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/cpp 4.2.5
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/jit 1.12.0
python 8.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 8.py timeout 0.0ms 0.0MB 0ms 0ms pypy 3.8.13
python 8.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 1946ms 1.0ms 3.2MB 1930ms 0ms haxe/hl/c 4.2.5
haxe 1.hx 1956ms 3.8ms 6.5MB 1943ms 0ms haxe/cpp 4.2.5
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/jit 1.12.0
python 8.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 8.py timeout 0.0ms 0.0MB 0ms 0ms pypy 3.8.13
python 8.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 491ms 0.8ms 3.0MB 477ms 0ms haxe/hl/c 4.2.5
haxe 1.hx 493ms 1.5ms 5.2MB 480ms 0ms haxe/cpp 4.2.5
haxe 1.hx 2846ms 0.1ms 3.8MB 2840ms 0ms haxe/hl/jit 1.12.0
python 8-m.py 4187ms 29ms 110.1MB 7277ms 400ms pypy 3.8.13
python 8.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 8.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12