Haxe VS C# benchmarks

Current benchmark data was generated on Mon May 19 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
csharp 1.cs 937ms 10ms 185.4MB 937ms 137ms dotnet 9.0.300
csharp 1.cs 1089ms 203ms 175.6MB 1003ms 140ms dotnet/aot 9.0.300
haxe 1.hx 1312ms 6.5ms 144.0MB 1500ms 67ms haxe/cpp 4.3.6
csharp 1.cs 1663ms 38ms 98.4MB 1863ms 183ms mono 6.12.0
haxe 2.hx 4437ms 43ms 495.1MB 4973ms 263ms haxe/cpp 4.3.6
haxe 1.hx timeout 0.0ms 48.6MB 5723ms 387ms haxe/hl/c 4.3.6
haxe 2.hx timeout 0.0ms 83.2MB 5100ms 680ms haxe/hl/c 4.3.6
haxe 1.hx timeout 0.0ms 50.4MB 7817ms 433ms haxe/hl/jit 1.15.0
haxe 2.hx timeout 0.0ms 130.9MB 7407ms 767ms haxe/hl/jit 1.15.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 91ms 2.9ms 25.6MB 87ms 10ms haxe/cpp 4.3.6
csharp 1.cs 142ms 2.5ms 44.0MB 123ms 10ms mono 6.12.0
csharp 1.cs 161ms 19ms 31.8MB 100ms 30ms dotnet/aot 9.0.300
csharp 1.cs 203ms 9.4ms 50.0MB 160ms 37ms dotnet 9.0.300
haxe 2.hx 397ms 15ms 58.1MB 437ms 23ms haxe/cpp 4.3.6
haxe 1.hx 642ms 4.2ms 8.8MB 613ms 47ms haxe/hl/c 4.3.6
haxe 1.hx 698ms 13ms 11.2MB 767ms 57ms haxe/hl/jit 1.15.0
haxe 2.hx 944ms 9.8ms 13.7MB 837ms 147ms haxe/hl/c 4.3.6
haxe 2.hx 1238ms 51ms 25.0MB 1300ms 173ms haxe/hl/jit 1.15.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5-m.cs 130ms 1.4ms 25.4MB 353ms 97ms dotnet/aot 9.0.300
csharp 5-m.cs 190ms 8.2ms 39.0MB 473ms 110ms dotnet 9.0.300
csharp 5-m.cs 239ms 13ms 49.4MB 680ms 103ms mono 6.12.0
haxe 1.hx 2394ms 18ms 25.6MB 2327ms 203ms haxe/cpp 4.3.6
haxe 1.hx timeout 0.0ms 3.1MB 4367ms 863ms haxe/hl/c 4.3.6
haxe 1.hx timeout 0.0ms 3.6MB 4380ms 870ms haxe/hl/jit 1.15.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5-m.cs 25ms 1.5ms 16.1MB 33ms 17ms dotnet/aot 9.0.300
csharp 5-m.cs 62ms 2.0ms 37.3MB 87ms 17ms dotnet 9.0.300
csharp 5-m.cs 73ms 0.4ms 31.2MB 103ms 27ms mono 6.12.0
haxe 1.hx 256ms 12ms 25.6MB 227ms 23ms haxe/cpp 4.3.6
haxe 1.hx 646ms 0.5ms 3.4MB 553ms 110ms haxe/hl/c 4.3.6
haxe 1.hx 678ms 2.1ms 3.6MB 593ms 107ms 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 1.9ms 0.1ms 2.9MB 0ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 2.2ms 0.2ms 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
csharp 1.cs 7.5ms 2.9ms 9.6MB 0ms 0ms dotnet/aot 9.0.300
csharp 1.cs 32ms 1.0ms 23.9MB 20ms 2ms mono 6.12.0
csharp 1.cs 35ms 0.3ms 26.1MB 20ms 0ms dotnet 9.0.300

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 93ms 0.6ms 9.6MB 80ms 0ms dotnet/aot 9.0.300
haxe 1.hx 136ms 1.8ms 20.5MB 120ms 3ms haxe/cpp 4.3.6
haxe 1.hx 136ms 0.9ms 3.0MB 130ms 0ms haxe/hl/c 4.3.6
csharp 2.cs 148ms 2.9ms 21.2MB 137ms 3ms mono 6.12.0
haxe 1.hx 158ms 1.9ms 3.8MB 150ms 0ms haxe/hl/jit 1.15.0
csharp 2.cs 255ms 4.3ms 29.5MB 233ms 10ms dotnet 9.0.300
csharp 1.cs 1040ms 5.1ms 13.3MB 1020ms 10ms dotnet/aot 9.0.300
csharp 1.cs 1302ms 18ms 33.1MB 1287ms 20ms dotnet 9.0.300
csharp 1.cs 3346ms 4.8ms 45.5MB 3297ms 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 263ms 3.9ms 9.8MB 247ms 0ms dotnet/aot 9.0.300
haxe 1.hx 377ms 5.0ms 25.5MB 363ms 10ms haxe/cpp 4.3.6
csharp 2.cs 378ms 23ms 22.6MB 360ms 0ms mono 6.12.0
haxe 1.hx 397ms 1.2ms 3.1MB 383ms 0ms haxe/hl/c 4.3.6
csharp 2.cs 403ms 7.6ms 29.1MB 383ms 10ms dotnet 9.0.300
haxe 1.hx 463ms 3.5ms 3.9MB 450ms 0ms haxe/hl/jit 1.15.0
csharp 1.cs 3118ms 26ms 13.3MB 3090ms 13ms dotnet/aot 9.0.300
csharp 1.cs 3650ms 14ms 32.8MB 3633ms 17ms dotnet 9.0.300
csharp 1.cs timeout 0.0ms 45.6MB 4940ms 50ms mono 6.12.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 51ms 1.0ms 9.6MB 40ms 0ms dotnet/aot 9.0.300
haxe 1.hx 64ms 0.6ms 12.3MB 50ms 0ms haxe/cpp 4.3.6
haxe 1.hx 67ms 0.4ms 3.1MB 60ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 80ms 0.7ms 3.8MB 70ms 0ms haxe/hl/jit 1.15.0
csharp 2.cs 94ms 1.8ms 20.8MB 80ms 0ms mono 6.12.0
csharp 2.cs 166ms 3.5ms 29.5MB 150ms 3ms dotnet 9.0.300
csharp 1.cs 1616ms 3.8ms 32.5MB 1607ms 10ms dotnet 9.0.300
csharp 1.cs 1820ms 10ms 28.8MB 1803ms 0ms mono 6.12.0
csharp 1.cs 1824ms 6.5ms 13.0MB 1807ms 0ms dotnet/aot 9.0.300

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 537ms 11ms 121.0MB 490ms 90ms dotnet/aot 9.0.300
csharp 1.cs 614ms 11ms 143.3MB 563ms 120ms dotnet/aot 9.0.300
csharp 2.cs 684ms 6.9ms 136.2MB 630ms 97ms dotnet 9.0.300
csharp 1.cs 764ms 21ms 161.6MB 710ms 117ms dotnet 9.0.300
haxe 1.hx 921ms 4.3ms 95.0MB 1023ms 50ms haxe/cpp 4.3.6
csharp 1.cs 1297ms 5.6ms 140.0MB 1507ms 167ms mono 6.12.0
haxe 1.hx timeout 0.0ms 32.6MB 5080ms 467ms haxe/hl/c 4.3.6
haxe 1.hx timeout 0.0ms 55.1MB 6033ms 460ms haxe/hl/jit 1.15.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 137ms 9.3ms 57.3MB 110ms 30ms dotnet/aot 9.0.300
csharp 1.cs 158ms 4.3ms 74.7MB 120ms 50ms dotnet/aot 9.0.300
haxe 1.hx 172ms 4.5ms 26.6MB 170ms 13ms haxe/cpp 4.3.6
csharp 2.cs 262ms 6.1ms 75.2MB 227ms 37ms dotnet 9.0.300
csharp 1.cs 266ms 1.9ms 69.4MB 240ms 37ms mono 6.12.0
csharp 1.cs 272ms 2.6ms 88.1MB 243ms 53ms dotnet 9.0.300
haxe 1.hx 1343ms 20ms 10.8MB 1287ms 143ms haxe/hl/c 4.3.6
haxe 1.hx 1521ms 17ms 20.3MB 1557ms 143ms haxe/hl/jit 1.15.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 9.cs 363ms 3.7ms 27.6MB 340ms 7ms dotnet 9.0.300
csharp 8.cs 372ms 0.9ms 9.8MB 360ms 0ms dotnet/aot 9.0.300
csharp 8.cs 423ms 2.3ms 27.6MB 403ms 3ms dotnet 9.0.300
haxe 2.hx 855ms 6.2ms 3.0MB 843ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 1067ms 9.4ms 3.0MB 1057ms 0ms haxe/hl/c 4.3.6
csharp 8.cs 1252ms 5.3ms 22.4MB 1240ms 0ms mono 6.12.0
haxe 3.hx 1396ms 13ms 25.6MB 1600ms 40ms haxe/cpp 4.3.6
haxe 2.hx 2406ms 5.6ms 3.6MB 2397ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 2473ms 2.8ms 3.6MB 2463ms 0ms haxe/hl/jit 1.15.0
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.2MB 3960ms 1563ms haxe/hl/c 4.3.6
haxe 3.hx timeout 0.0ms 3.9MB 4203ms 1287ms haxe/hl/jit 1.15.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 8.cs 46ms 0.5ms 9.8MB 30ms 0ms dotnet/aot 9.0.300
haxe 2.hx 90ms 1.5ms 3.1MB 80ms 0ms haxe/hl/c 4.3.6
csharp 9.cs 93ms 1.5ms 27.8MB 73ms 10ms dotnet 9.0.300
csharp 8.cs 95ms 2.7ms 27.6MB 77ms 7ms dotnet 9.0.300
haxe 1.hx 111ms 3.5ms 3.0MB 103ms 0ms haxe/hl/c 4.3.6
haxe 3.hx 156ms 1.9ms 25.6MB 157ms 10ms haxe/cpp 4.3.6
csharp 8.cs 162ms 0.3ms 22.8MB 150ms 0ms mono 6.12.0
haxe 2.hx 246ms 0.9ms 3.6MB 240ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 263ms 14ms 3.6MB 253ms 0ms haxe/hl/jit 1.15.0
haxe 3.hx 671ms 1.8ms 3.3MB 523ms 203ms haxe/hl/c 4.3.6
haxe 2.hx 673ms 9.6ms 4.4MB 663ms 0ms haxe/cpp 4.3.6
haxe 3.hx 781ms 4.9ms 3.8MB 627ms 220ms haxe/hl/jit 1.15.0
haxe 1.hx 806ms 6.1ms 4.4MB 797ms 0ms haxe/cpp 4.3.6

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 1877ms 33ms 10.4MB 7243ms 3ms dotnet/aot 9.0.300
csharp 3-m.cs 1988ms 108ms 30.3MB 7253ms 20ms dotnet 9.0.300
haxe 1.hx 3900ms 6.3ms 3.4MB 3887ms 0ms haxe/hl/c 4.3.6
csharp 3-m.cs 4713ms 116ms 24.7MB 18030ms 17ms mono 6.12.0
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

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 475ms 1.5ms 10.5MB 1810ms 0ms dotnet/aot 9.0.300
csharp 3-m.cs 535ms 3.2ms 30.1MB 1887ms 10ms dotnet 9.0.300
haxe 1.hx 983ms 3.9ms 3.3MB 970ms 0ms haxe/hl/c 4.3.6
csharp 3-m.cs 1236ms 42ms 25.8MB 4650ms 7ms mono 6.12.0
haxe 1.hx 2400ms 2.4ms 6.5MB 2387ms 0ms haxe/cpp 4.3.6
haxe 1.hx timeout 0.0ms 3.8MB 4990ms 0ms haxe/hl/jit 1.15.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 128ms 1.5ms 10.5MB 450ms 0ms dotnet/aot 9.0.300
csharp 3-m.cs 176ms 1.1ms 28.5MB 503ms 10ms dotnet 9.0.300
haxe 1.hx 251ms 2.3ms 3.0MB 240ms 0ms haxe/hl/c 4.3.6
csharp 3-m.cs 356ms 11ms 25.4MB 1197ms 3ms mono 6.12.0
haxe 1.hx 603ms 0.3ms 5.3MB 590ms 0ms haxe/cpp 4.3.6
haxe 1.hx 2307ms 6.7ms 3.6MB 2297ms 0ms haxe/hl/jit 1.15.0