Haxe VS C# benchmarks

Current benchmark data was generated on Mon Feb 06 2023, 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
csharp 1.cs 1487ms 35ms 306.6MB 1350ms 213ms dotnet/aot 7.0.102
csharp 1.cs 1715ms 29ms 426.3MB 1513ms 263ms dotnet 7.0.102
haxe 1.hx 1880ms 26ms 146.2MB 2330ms 70ms haxe/cpp 4.2.5
csharp 1.cs 2432ms 49ms 104.6MB 2877ms 213ms mono 6.12.0
haxe 2.hx timeout 0.0ms 480.8MB 6600ms 247ms haxe/cpp 4.2.5
haxe 1.hx timeout 0.0ms 48.6MB 4707ms 277ms haxe/hl/c 4.2.5
haxe 2.hx timeout 0.0ms 83.0MB 4503ms 480ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 49.0MB 4733ms 250ms haxe/hl/jit 1.13.0
haxe 2.hx timeout 0.0ms 130.2MB 4497ms 480ms 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 126ms 3.3ms 27.7MB 117ms 3ms haxe/cpp 4.2.5
csharp 1.cs 144ms 6.2ms 59.4MB 120ms 17ms dotnet/aot 7.0.102
csharp 1.cs 166ms 4.5ms 46.1MB 137ms 20ms mono 6.12.0
csharp 1.cs 281ms 3.2ms 151.0MB 200ms 53ms dotnet 7.0.102
haxe 2.hx 510ms 9.4ms 60.3MB 587ms 30ms haxe/cpp 4.2.5
haxe 1.hx 909ms 9.0ms 8.6MB 860ms 33ms haxe/hl/c 4.2.5
haxe 1.hx 1133ms 11ms 11.1MB 1077ms 37ms haxe/hl/jit 1.13.0
haxe 2.hx 1314ms 27ms 13.4MB 1213ms 83ms haxe/hl/c 4.2.5
haxe 2.hx 1509ms 8.7ms 25.0MB 1383ms 110ms 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 316ms 19ms 47.2MB 503ms 90ms dotnet/aot 7.0.102
csharp 5-m.cs 544ms 24ms 61.2MB 910ms 113ms mono 6.12.0
csharp 5-m.cs 569ms 35ms 171.4MB 853ms 150ms dotnet 7.0.102
haxe 1.hx 3083ms 3.1ms 27.5MB 3050ms 247ms haxe/cpp 4.2.5
haxe 1.hx timeout 0.0ms 3.4MB 4683ms 300ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 3.8MB 4750ms 233ms haxe/hl/jit 1.13.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5.cs 49ms 1.7ms 21.3MB 57ms 13ms dotnet/aot 7.0.102
csharp 5.cs 96ms 10ms 39.2MB 113ms 30ms mono 6.12.0
csharp 5.cs 143ms 4.6ms 114.0MB 117ms 53ms dotnet 7.0.102
haxe 1.hx 328ms 3.5ms 27.5MB 300ms 33ms haxe/cpp 4.2.5
haxe 1.hx 769ms 1.0ms 3.3MB 710ms 43ms haxe/hl/c 4.2.5
haxe 1.hx 834ms 0.2ms 3.6MB 770ms 50ms 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 2.7ms 0.7ms 2.4MB 0ms 0ms haxe/hl/c 4.2.5
haxe 1.hx 4.0ms 0.7ms 3.0MB 0ms 0ms haxe/hl/jit 1.13.0
haxe 1.hx 4.3ms 1.7ms 3.2MB 0ms 0ms haxe/cpp 4.2.5
csharp 1.cs 6.8ms 0.7ms 12.1MB 0ms 0ms dotnet/aot 7.0.102
csharp 1.cs 21ms 0.6ms 25.6MB 10ms 0ms mono 6.12.0
csharp 1.cs 79ms 2.2ms 101.4MB 28ms 26ms dotnet 7.0.102

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 138ms 1.7ms 10.0MB 133ms 0ms dotnet/aot 7.0.102
haxe 1.hx 189ms 2.3ms 22.3MB 177ms 3ms haxe/cpp 4.2.5
csharp 2.cs 196ms 1.8ms 25.4MB 173ms 7ms mono 6.12.0
haxe 1.hx 209ms 5.8ms 2.8MB 197ms 0ms haxe/hl/c 4.2.5
csharp 2.cs 228ms 3.3ms 102.0MB 180ms 20ms dotnet 7.0.102
haxe 1.hx 229ms 3.3ms 3.6MB 217ms 0ms haxe/hl/jit 1.13.0
csharp 1.cs 1582ms 3.0ms 60.1MB 1560ms 20ms dotnet/aot 7.0.102
csharp 1.cs 1737ms 17ms 150.1MB 1657ms 63ms dotnet 7.0.102
csharp 1.cs 3349ms 1.6ms 47.6MB 3303ms 40ms mono 6.12.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 400ms 7.6ms 8.2MB 393ms 0ms dotnet/aot 7.0.102
csharp 2.cs 458ms 2.7ms 102.2MB 397ms 33ms dotnet 7.0.102
csharp 2.cs 526ms 2.5ms 24.9MB 510ms 0ms mono 6.12.0
haxe 1.hx 538ms 8.2ms 27.5MB 523ms 7ms haxe/cpp 4.2.5
haxe 1.hx 610ms 3.4ms 2.8MB 593ms 3ms haxe/hl/c 4.2.5
haxe 1.hx 674ms 13ms 3.7MB 660ms 0ms haxe/hl/jit 1.13.0
csharp 1.cs 4665ms 7.4ms 58.3MB 4643ms 13ms dotnet/aot 7.0.102
csharp 1.cs 4831ms 4.1ms 145.1MB 4760ms 60ms dotnet 7.0.102
csharp 1.cs timeout 0.0ms 49.7MB 4947ms 43ms 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.0ms 12.2MB 70ms 0ms dotnet/aot 7.0.102
haxe 1.hx 86ms 0.6ms 14.1MB 73ms 0ms haxe/cpp 4.2.5
haxe 1.hx 102ms 1.2ms 2.9MB 90ms 0ms haxe/hl/c 4.2.5
csharp 2.cs 111ms 1.4ms 27.3MB 100ms 0ms mono 6.12.0
haxe 1.hx 113ms 0.6ms 3.6MB 100ms 0ms haxe/hl/jit 1.13.0
csharp 2.cs 159ms 4.8ms 100.0MB 107ms 23ms dotnet 7.0.102
csharp 1.cs 4299ms 4.1ms 55.2MB 4263ms 23ms dotnet/aot 7.0.102
csharp 1.cs 4553ms 42ms 141.1MB 4467ms 43ms dotnet 7.0.102
csharp 1.cs 4613ms 9.1ms 31.3MB 4597ms 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 922ms 6.2ms 378.5MB 783ms 183ms dotnet/aot 7.0.102
csharp 1.cs 967ms 1.1ms 313.5MB 853ms 137ms dotnet/aot 7.0.102
csharp 2.cs 1115ms 10ms 492.0MB 890ms 233ms dotnet 7.0.102
csharp 1.cs 1151ms 7.1ms 499.3MB 970ms 213ms dotnet 7.0.102
haxe 1.hx 1315ms 13ms 97.2MB 1570ms 50ms haxe/cpp 4.2.5
csharp 1.cs 1944ms 32ms 143.5MB 2473ms 120ms mono 6.12.0
haxe 1.hx timeout 0.0ms 32.7MB 4650ms 333ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 54.0MB 4590ms 393ms 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 212ms 5.9ms 138.0MB 163ms 43ms dotnet/aot 7.0.102
csharp 1.cs 243ms 2.8ms 148.5MB 183ms 53ms dotnet/aot 7.0.102
haxe 1.hx 253ms 10ms 28.5MB 243ms 23ms haxe/cpp 4.2.5
csharp 1.cs 349ms 6.0ms 71.9MB 327ms 40ms mono 6.12.0
csharp 2.cs 366ms 4.4ms 206.1MB 270ms 80ms dotnet 7.0.102
csharp 1.cs 409ms 21ms 258.7MB 273ms 97ms dotnet 7.0.102
haxe 1.hx 1659ms 4.1ms 10.9MB 1533ms 110ms haxe/hl/c 4.2.5
haxe 1.hx 1917ms 76ms 20.2MB 1800ms 103ms 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 448ms 2.3ms 102.2MB 397ms 23ms dotnet 7.0.102
csharp 8.cs 580ms 4.8ms 12.2MB 577ms 0ms dotnet/aot 7.0.102
csharp 8.cs 635ms 6.9ms 100.1MB 573ms 27ms dotnet 7.0.102
haxe 2.hx 1107ms 28ms 2.3MB 1097ms 0ms haxe/hl/c 4.2.5
csharp 8.cs 1299ms 31ms 24.8MB 1287ms 0ms mono 6.12.0
haxe 1.hx 1439ms 3.4ms 2.4MB 1427ms 0ms haxe/hl/c 4.2.5
haxe 3-m.hx 1482ms 19ms 27.6MB 2480ms 23ms haxe/cpp 4.2.5
haxe 2.hx 2488ms 69ms 3.3MB 2477ms 0ms haxe/hl/jit 1.13.0
haxe 1.hx 2618ms 43ms 3.2MB 2600ms 0ms haxe/hl/jit 1.13.0
haxe 1.hx timeout 0.0ms 3.2MB 4990ms 0ms haxe/cpp 4.2.5
haxe 2.hx timeout 0.0ms 3.3MB 4983ms 0ms haxe/cpp 4.2.5
haxe 3.hx timeout 0.0ms 3.3MB 4537ms 443ms haxe/hl/c 4.2.5
haxe 3.hx timeout 0.0ms 3.8MB 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 67ms 2.9ms 12.1MB 63ms 0ms dotnet/aot 7.0.102
haxe 2.hx 112ms 1.0ms 2.4MB 100ms 0ms haxe/hl/c 4.2.5
csharp 9.cs 124ms 3.7ms 101.9MB 80ms 20ms dotnet 7.0.102
csharp 8.cs 139ms 1.0ms 102.0MB 93ms 20ms dotnet 7.0.102
haxe 1.hx 147ms 1.1ms 2.4MB 140ms 0ms haxe/hl/c 4.2.5
csharp 8.cs 159ms 5.7ms 24.9MB 140ms 3ms mono 6.12.0
haxe 3-m.hx 166ms 0.9ms 27.7MB 243ms 10ms haxe/cpp 4.2.5
haxe 2.hx 251ms 0.5ms 3.3MB 237ms 0ms haxe/hl/jit 1.13.0
haxe 1.hx 268ms 6.1ms 3.3MB 253ms 0ms haxe/hl/jit 1.13.0
haxe 3.hx 686ms 2.3ms 3.2MB 623ms 47ms haxe/hl/c 4.2.5
haxe 3.hx 824ms 11ms 3.7MB 763ms 43ms haxe/hl/jit 1.13.0
haxe 2.hx 865ms 7.0ms 3.2MB 853ms 0ms haxe/cpp 4.2.5
haxe 1.hx 1043ms 1.1ms 3.2MB 1030ms 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 2157ms 59ms 13.7MB 4067ms 7ms dotnet/aot 7.0.102
csharp 3-m.cs 4304ms 209ms 102.9MB 7280ms 33ms dotnet 7.0.102
csharp 3.cs timeout 0.0ms 27.0MB 9767ms 7ms mono 6.12.0
haxe 1.hx timeout 0.0ms 7.2MB 4987ms 0ms haxe/cpp 4.2.5
haxe 1.hx timeout 0.0ms 3.0MB 4990ms 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 541ms 2.0ms 12.0MB 1027ms 3ms dotnet/aot 7.0.102
csharp 3-m.cs 1131ms 2.6ms 102.5MB 2010ms 40ms dotnet 7.0.102
haxe 1.hx 1352ms 0.8ms 3.0MB 1340ms 0ms haxe/hl/c 4.2.5
haxe 1.hx 2172ms 0.6ms 6.6MB 2157ms 0ms haxe/cpp 4.2.5
csharp 3-m.cs 2696ms 136ms 27.7MB 5060ms 17ms 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 152ms 2.5ms 12.3MB 267ms 3ms dotnet/aot 7.0.102
haxe 1.hx 342ms 1.0ms 2.9MB 330ms 0ms haxe/hl/c 4.2.5
csharp 3-m.cs 376ms 2.3ms 104.4MB 563ms 30ms dotnet 7.0.102
haxe 1.hx 548ms 1.0ms 5.4MB 533ms 0ms haxe/cpp 4.2.5
csharp 3-m.cs 686ms 9.6ms 27.8MB 1283ms 0ms mono 6.12.0
haxe 1.hx 2851ms 1.2ms 3.6MB 2840ms 0ms haxe/hl/jit 1.13.0