Haxe VS C# benchmarks

Current benchmark data was generated on Thu Jul 13 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

* -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
csharp 1.cs 1238ms 15ms 384.0MB 1173ms 167ms dotnet/aot 7.0.306
csharp 1.cs 1474ms 24ms 397.6MB 1343ms 190ms dotnet 7.0.306
haxe 1.hx 1721ms 7.7ms 146.1MB 1883ms 80ms haxe/cpp 4.2.5
csharp 1.cs 2201ms 41ms 104.3MB 2517ms 157ms mono 6.12.0
haxe 2.hx timeout 0.0ms 480.9MB 5583ms 243ms haxe/cpp 4.2.5
haxe 1.hx timeout 0.0ms 48.6MB 4733ms 243ms haxe/hl/c 4.2.5
haxe 2.hx timeout 0.0ms 83.0MB 4383ms 600ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 49.0MB 4723ms 257ms haxe/hl/jit 1.13.0
haxe 2.hx timeout 0.0ms 130.2MB 4403ms 573ms haxe/hl/jit 1.13.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 107ms 2.3ms 27.7MB 103ms 0ms haxe/cpp 4.2.5
csharp 1.cs 126ms 4.3ms 72.0MB 100ms 23ms dotnet/aot 7.0.306
csharp 1.cs 153ms 0.8ms 44.0MB 137ms 3ms mono 6.12.0
csharp 1.cs 237ms 4.4ms 95.5MB 180ms 33ms dotnet 7.0.306
haxe 2.hx 439ms 8.3ms 58.4MB 457ms 27ms haxe/cpp 4.2.5
haxe 1.hx 789ms 3.5ms 8.6MB 763ms 13ms haxe/hl/c 4.2.5
haxe 1.hx 942ms 3.8ms 11.1MB 887ms 40ms haxe/hl/jit 1.13.0
haxe 2.hx 1177ms 9.7ms 13.4MB 1037ms 123ms haxe/hl/c 4.2.5
haxe 2.hx 1307ms 7.5ms 25.0MB 1120ms 167ms haxe/hl/jit 1.13.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5-m.cs 366ms 49ms 57.8MB 560ms 127ms dotnet/aot 7.0.306
csharp 5-m.cs 482ms 25ms 68.6MB 743ms 127ms dotnet 7.0.306
csharp 5-m.cs 482ms 6.9ms 38.3MB 823ms 80ms mono 6.12.0
haxe 1.hx 3439ms 2.9ms 27.5MB 3323ms 243ms haxe/cpp 4.2.5
haxe 1.hx timeout 0.0ms 3.4MB 4630ms 350ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 3.8MB 4740ms 243ms haxe/hl/jit 1.13.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5-m.cs 60ms 1.7ms 28.3MB 77ms 17ms dotnet/aot 7.0.306
csharp 5-m.cs 97ms 6.4ms 38.3MB 113ms 37ms mono 6.12.0
csharp 5.cs 108ms 2.9ms 39.9MB 93ms 20ms dotnet 7.0.306
haxe 1.hx 361ms 1.6ms 27.6MB 337ms 20ms haxe/cpp 4.2.5
haxe 1.hx 802ms 2.2ms 3.3MB 750ms 33ms haxe/hl/c 4.2.5
haxe 1.hx 870ms 1.6ms 3.7MB 813ms 37ms haxe/hl/jit 1.13.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 1.9ms 0.3ms 3.0MB 0ms 0ms haxe/hl/c 4.2.5
haxe 1.hx 2.9ms 0.9ms 3.2MB 0ms 0ms haxe/cpp 4.2.5
haxe 1.hx 4.3ms 0.7ms 3.2MB 0ms 0ms haxe/hl/jit 1.13.0
csharp 1.cs 6.8ms 0.8ms 12.1MB 0ms 0ms dotnet/aot 7.0.306
csharp 1.cs 19ms 0.6ms 25.6MB 10ms 0ms mono 6.12.0
csharp 1.cs 59ms 1.9ms 28.8MB 26ms 2ms dotnet 7.0.306

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 136ms 0.9ms 10.3MB 130ms 0ms dotnet/aot 7.0.306
haxe 1.hx 182ms 1.3ms 20.4MB 167ms 3ms haxe/cpp 4.2.5
csharp 2.cs 185ms 0.6ms 22.1MB 167ms 3ms mono 6.12.0
haxe 1.hx 193ms 1.9ms 2.9MB 180ms 0ms haxe/hl/c 4.2.5
csharp 2.cs 200ms 5.5ms 29.6MB 163ms 10ms dotnet 7.0.306
haxe 1.hx 235ms 3.2ms 3.6MB 227ms 0ms haxe/hl/jit 1.13.0
csharp 1.cs 1284ms 2.6ms 73.3MB 1247ms 33ms dotnet/aot 7.0.306
csharp 1.cs 1624ms 6.4ms 90.7MB 1563ms 40ms dotnet 7.0.306
csharp 1.cs 3045ms 55ms 49.5MB 3013ms 23ms mono 6.12.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 394ms 2.2ms 10.2MB 383ms 0ms dotnet/aot 7.0.306
csharp 2.cs 414ms 2.1ms 29.4MB 383ms 7ms dotnet 7.0.306
csharp 2.cs 504ms 3.4ms 23.4MB 487ms 0ms mono 6.12.0
haxe 1.hx 520ms 2.0ms 25.6MB 510ms 7ms haxe/cpp 4.2.5
haxe 1.hx 573ms 3.9ms 2.9MB 560ms 0ms haxe/hl/c 4.2.5
haxe 1.hx 696ms 6.8ms 3.7MB 683ms 0ms haxe/hl/jit 1.13.0
csharp 1.cs 3944ms 317ms 71.6MB 3903ms 40ms dotnet/aot 7.0.306
csharp 1.cs 4542ms 37ms 89.6MB 4480ms 37ms dotnet 7.0.306
csharp 1.cs timeout 0.0ms 45.7MB 4957ms 37ms mono 6.12.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 73ms 3.2ms 10.1MB 73ms 0ms dotnet/aot 7.0.306
haxe 1.hx 85ms 0.6ms 12.1MB 73ms 0ms haxe/cpp 4.2.5
haxe 1.hx 94ms 0.3ms 2.8MB 87ms 0ms haxe/hl/c 4.2.5
csharp 2.cs 105ms 1.2ms 25.2MB 90ms 3ms mono 6.12.0
haxe 1.hx 117ms 2.5ms 3.6MB 103ms 0ms haxe/hl/jit 1.13.0
csharp 2.cs 129ms 9.9ms 29.4MB 100ms 3ms dotnet 7.0.306
csharp 1.cs 2812ms 8.4ms 64.7MB 2783ms 17ms dotnet/aot 7.0.306
csharp 1.cs 3014ms 39ms 80.1MB 2957ms 33ms dotnet 7.0.306
csharp 1.cs 3185ms 2.8ms 31.4MB 3170ms 0ms mono 6.12.0

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 804ms 26ms 369.6MB 673ms 170ms dotnet/aot 7.0.306
csharp 1.cs 841ms 7.8ms 384.6MB 710ms 183ms dotnet/aot 7.0.306
csharp 2.cs 1026ms 11ms 413.9MB 847ms 167ms dotnet 7.0.306
csharp 1.cs 1047ms 13ms 441.4MB 860ms 210ms dotnet 7.0.306
haxe 1.hx 1142ms 28ms 97.1MB 1237ms 43ms haxe/cpp 4.2.5
csharp 1.cs 1681ms 23ms 145.1MB 2023ms 143ms mono 6.12.0
haxe 1.hx timeout 0.0ms 32.6MB 4523ms 413ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 54.5MB 4623ms 357ms haxe/hl/jit 1.13.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 158ms 3.1ms 77.3MB 133ms 20ms dotnet/aot 7.0.306
haxe 1.hx 196ms 1.0ms 28.7MB 200ms 10ms haxe/cpp 4.2.5
csharp 1.cs 229ms 11ms 197.7MB 147ms 77ms dotnet/aot 7.0.306
csharp 1.cs 309ms 7.0ms 72.1MB 280ms 37ms mono 6.12.0
csharp 1.cs 346ms 2.7ms 200.9MB 237ms 90ms dotnet 7.0.306
csharp 2.cs 369ms 0.4ms 101.9MB 313ms 37ms dotnet 7.0.306
haxe 1.hx 1538ms 6.2ms 11.0MB 1427ms 93ms haxe/hl/c 4.2.5
haxe 1.hx 1707ms 4.6ms 20.2MB 1577ms 110ms haxe/hl/jit 1.13.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 9.cs 407ms 0.4ms 29.8MB 380ms 0ms dotnet 7.0.306
csharp 8.cs 498ms 4.0ms 10.1MB 497ms 0ms dotnet/aot 7.0.306
csharp 8.cs 538ms 1.3ms 25.7MB 503ms 0ms dotnet 7.0.306
haxe 2.hx 1011ms 67ms 2.4MB 997ms 0ms haxe/hl/c 4.2.5
csharp 8.cs 1108ms 0.6ms 24.9MB 1093ms 0ms mono 6.12.0
haxe 1.hx 1241ms 0.7ms 2.3MB 1227ms 0ms haxe/hl/c 4.2.5
haxe 3.hx 1389ms 23ms 27.6MB 1563ms 23ms haxe/cpp 4.2.5
haxe 2.hx 2328ms 47ms 3.2MB 2317ms 0ms haxe/hl/jit 1.13.0
haxe 1.hx 2627ms 189ms 3.2MB 2613ms 0ms haxe/hl/jit 1.13.0
haxe 1.hx timeout 0.0ms 3.3MB 4983ms 0ms haxe/cpp 4.2.5
haxe 2.hx timeout 0.0ms 3.2MB 4987ms 0ms haxe/cpp 4.2.5
haxe 3.hx timeout 0.0ms 3.4MB 4513ms 470ms haxe/hl/c 4.2.5
haxe 3.hx timeout 0.0ms 3.7MB 4630ms 350ms haxe/hl/jit 1.13.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 8.cs 57ms 2.2ms 10.1MB 53ms 0ms dotnet/aot 7.0.306
haxe 2.hx 100ms 0.8ms 2.3MB 90ms 0ms haxe/hl/c 4.2.5
csharp 9.cs 101ms 3.9ms 29.3MB 70ms 3ms dotnet 7.0.306
csharp 8.cs 120ms 8.5ms 29.8MB 77ms 3ms dotnet 7.0.306
haxe 1.hx 128ms 0.8ms 2.3MB 120ms 0ms haxe/hl/c 4.2.5
csharp 8.cs 133ms 3.3ms 24.9MB 120ms 0ms mono 6.12.0
haxe 3.hx 159ms 13ms 25.7MB 153ms 7ms haxe/cpp 4.2.5
haxe 2.hx 236ms 1.9ms 3.3MB 223ms 0ms haxe/hl/jit 1.13.0
haxe 1.hx 258ms 2.9ms 3.3MB 250ms 0ms haxe/hl/jit 1.13.0
haxe 3.hx 653ms 14ms 3.2MB 577ms 60ms haxe/hl/c 4.2.5
haxe 3.hx 772ms 1.3ms 3.7MB 697ms 60ms haxe/hl/jit 1.13.0
haxe 2.hx 803ms 1.5ms 3.2MB 790ms 0ms haxe/cpp 4.2.5
haxe 1.hx 1101ms 0.7ms 3.2MB 1087ms 0ms haxe/cpp 4.2.5

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 2524ms 7.5ms 13.7MB 4930ms 0ms dotnet/aot 7.0.306
csharp 3-m.cs 4435ms 37ms 34.9MB 8597ms 10ms dotnet 7.0.306
csharp 3.cs timeout 0.0ms 26.5MB 9777ms 7ms mono 6.12.0
haxe 1.hx timeout 0.0ms 6.9MB 4990ms 0ms haxe/cpp 4.2.5
haxe 1.hx timeout 0.0ms 3.1MB 4983ms 0ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 3.7MB 4987ms 0ms haxe/hl/jit 1.13.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 651ms 2.8ms 8.3MB 1233ms 10ms dotnet/aot 7.0.306
csharp 3-m.cs 1230ms 6.9ms 31.6MB 2307ms 3ms dotnet 7.0.306
haxe 1.hx 1304ms 0.9ms 2.9MB 1290ms 0ms haxe/hl/c 4.2.5
haxe 1.hx 2337ms 0.8ms 6.7MB 2327ms 0ms haxe/cpp 4.2.5
csharp 3-m.cs 3185ms 152ms 27.8MB 6040ms 0ms mono 6.12.0
haxe 1.hx timeout 0.0ms 3.6MB 4983ms 0ms haxe/hl/jit 1.13.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 179ms 2.9ms 12.2MB 310ms 7ms dotnet/aot 7.0.306
haxe 1.hx 330ms 0.5ms 2.9MB 320ms 0ms haxe/hl/c 4.2.5
csharp 3.cs 433ms 78ms 29.7MB 567ms 13ms dotnet 7.0.306
haxe 1.hx 590ms 0.8ms 5.4MB 577ms 0ms haxe/cpp 4.2.5
csharp 3-m.cs 802ms 3.6ms 29.7MB 1520ms 7ms mono 6.12.0
haxe 1.hx 3423ms 1.0ms 3.6MB 3410ms 0ms haxe/hl/jit 1.13.0