Odin VS C# benchmarks

Current benchmark data was generated on Thu Sep 22 2022, 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.)

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 1.7ms 0.5ms 0.9MB 0ms 0ms odin 2022
csharp 1.cs 19ms 0.3ms 23.8MB 10ms 0ms mono 6.12.0
csharp 1.cs 51ms 4.5ms 29.0MB 22ms 4ms dotnet 6.0.401

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 182ms 0.8ms 1.9MB 170ms 0ms odin 2022
csharp 2.cs 186ms 1.6ms 25.5MB 173ms 0ms mono 6.12.0
csharp 2.cs 206ms 1.5ms 30.2MB 177ms 0ms dotnet 6.0.401
csharp 1.cs 1658ms 11ms 89.7MB 1613ms 30ms dotnet 6.0.401
csharp 1.cs 3025ms 18ms 49.7MB 2983ms 30ms mono 6.12.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 458ms 3.7ms 28.2MB 433ms 0ms dotnet 6.0.401
csharp 2.cs 506ms 0.4ms 23.7MB 490ms 0ms mono 6.12.0
odin 1.odin 545ms 3.0ms 1.9MB 530ms 0ms odin 2022
csharp 1.cs 4679ms 40ms 91.1MB 4627ms 23ms dotnet 6.0.401
csharp 1.cs timeout 0.0ms 0.0MB 0ms 0ms mono 6.12.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 85ms 2.6ms 0.9MB 73ms 0ms odin 2022
csharp 2.cs 105ms 0.4ms 25.4MB 87ms 3ms mono 6.12.0
csharp 2.cs 130ms 2.2ms 28.0MB 100ms 0ms dotnet 6.0.401
csharp 1.cs 3185ms 1.5ms 31.5MB 3167ms 3ms mono 6.12.0
csharp 1.cs 3194ms 6.3ms 77.0MB 3133ms 23ms dotnet 6.0.401

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 9.cs 405ms 2.4ms 27.3MB 373ms 0ms dotnet 6.0.401
csharp 8.cs 535ms 3.1ms 29.3MB 507ms 0ms dotnet 6.0.401
csharp 8.cs 1127ms 33ms 24.8MB 1113ms 0ms mono 6.12.0
odin 1.odin 2502ms 1.7ms 0.9MB 2490ms 0ms odin 2022

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 9.cs 89ms 5.9ms 27.3MB 60ms 3ms dotnet 6.0.401
csharp 8.cs 103ms 4.1ms 31.3MB 73ms 0ms dotnet 6.0.401
csharp 8.cs 134ms 1.5ms 25.1MB 120ms 0ms mono 6.12.0
odin 1.odin 253ms 0.8ms 0.9MB 240ms 0ms odin 2022

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 726ms 24ms 40.6MB 700ms 10ms odin 2022
csharp 1.cs 858ms 20ms 88.0MB 813ms 13ms dotnet 6.0.401
csharp 1.cs 910ms 21ms 84.8MB 870ms 20ms mono 6.12.0
csharp 2.cs 996ms 3.9ms 38.1MB 963ms 3ms dotnet 6.0.401
odin 2.odin 1160ms 1.8ms 6.3MB 1143ms 3ms odin 2022
csharp 2.cs 2432ms 1.1ms 34.3MB 2413ms 7ms mono 6.12.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 122ms 0.6ms 11.4MB 110ms 0ms odin 2022
csharp 1.cs 183ms 0.3ms 40.8MB 163ms 7ms mono 6.12.0
csharp 1.cs 186ms 3.5ms 45.9MB 153ms 7ms dotnet 6.0.401
csharp 2.cs 278ms 1.1ms 29.7MB 247ms 0ms dotnet 6.0.401
odin 2.odin 283ms 0.6ms 2.8MB 270ms 0ms odin 2022
csharp 2.cs 605ms 2.9ms 27.9MB 590ms 3ms mono 6.12.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 3104ms 414ms 30.4MB 5183ms 13ms dotnet 6.0.401
odin 1.odin 4618ms 1.5ms 2.9MB 4607ms 0ms odin 2022
csharp 3.cs timeout 0.0ms 0.0MB 0ms 0ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 716ms 4.2ms 31.4MB 1293ms 13ms dotnet 6.0.401
odin 1.odin 1158ms 0.3ms 2.3MB 1147ms 0ms odin 2022
csharp 3-m.cs 3178ms 135ms 29.2MB 6037ms 3ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 231ms 1.3ms 30.4MB 353ms 7ms dotnet 6.0.401
odin 1.odin 294ms 3.8ms 1.9MB 280ms 0ms odin 2022
csharp 3-m.cs 802ms 1.9ms 29.5MB 1527ms 3ms mono 6.12.0