Odin VS C# benchmarks

Current benchmark data was generated on Tue Mar 25 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 987ms 29ms 207.3MB 987ms 150ms dotnet 9.0.202
csharp 1.cs 1059ms 17ms 186.1MB 1060ms 143ms dotnet/aot 9.0.202
csharp 1.cs 1745ms 50ms 99.7MB 1947ms 213ms mono 6.12.0
odin 1.odin 2495ms 82ms 49.6MB 2460ms 20ms odin 2024

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 132ms 9.0ms 34.1MB 97ms 30ms dotnet/aot 9.0.202
csharp 1.cs 151ms 3.1ms 44.1MB 127ms 10ms mono 6.12.0
csharp 1.cs 202ms 3.4ms 50.0MB 160ms 37ms dotnet 9.0.202
odin 1.odin 222ms 2.2ms 7.5MB 210ms 0ms odin 2024

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 1.2ms 0.0ms 1.6MB 0ms 0ms odin 2024
csharp 1.cs 8.7ms 2.7ms 9.4MB 0ms 0ms dotnet/aot 9.0.202
csharp 1.cs 32ms 0.6ms 21.6MB 20ms 0ms mono 6.12.0
csharp 1.cs 36ms 1.2ms 26.1MB 20ms 6ms dotnet 9.0.202

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 97ms 3.1ms 9.8MB 87ms 0ms dotnet/aot 9.0.202
odin 1.odin 148ms 2.9ms 1.6MB 140ms 0ms odin 2024
csharp 2.cs 148ms 3.1ms 22.8MB 137ms 0ms mono 6.12.0
csharp 2.cs 253ms 2.7ms 29.5MB 240ms 7ms dotnet 9.0.202
csharp 1.cs 1059ms 4.4ms 13.3MB 1040ms 3ms dotnet/aot 9.0.202
csharp 1.cs 1330ms 8.7ms 32.6MB 1317ms 13ms dotnet 9.0.202
csharp 1.cs 3392ms 39ms 47.5MB 3350ms 33ms mono 6.12.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 270ms 2.8ms 9.8MB 257ms 0ms dotnet/aot 9.0.202
csharp 2.cs 364ms 2.7ms 21.3MB 350ms 0ms mono 6.12.0
csharp 2.cs 407ms 7.8ms 29.1MB 390ms 10ms dotnet 9.0.202
odin 1.odin 431ms 3.0ms 1.6MB 423ms 0ms odin 2024
csharp 1.cs 3140ms 32ms 13.3MB 3113ms 17ms dotnet/aot 9.0.202
csharp 1.cs 3697ms 152ms 32.9MB 3680ms 23ms dotnet 9.0.202
csharp 1.cs timeout 0.0ms 45.6MB 4943ms 47ms mono 6.12.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 53ms 2.4ms 9.8MB 40ms 0ms dotnet/aot 9.0.202
odin 1.odin 68ms 2.2ms 1.6MB 60ms 0ms odin 2024
csharp 2.cs 94ms 2.5ms 21.1MB 80ms 0ms mono 6.12.0
csharp 2.cs 162ms 2.3ms 29.1MB 143ms 7ms dotnet 9.0.202
csharp 1.cs 1629ms 4.7ms 32.5MB 1620ms 13ms dotnet 9.0.202
csharp 1.cs 1805ms 4.0ms 12.9MB 1787ms 3ms dotnet/aot 9.0.202
csharp 1.cs 1830ms 4.2ms 26.7MB 1813ms 0ms mono 6.12.0

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 287ms 1.7ms 4.5MB 280ms 0ms odin 2024
csharp 4.cs 344ms 11ms 37.3MB 323ms 10ms dotnet 9.0.202
csharp 2.cs 562ms 60ms 39.7MB 537ms 20ms dotnet 9.0.202
csharp 1.cs 2042ms 11ms 36.6MB 2020ms 10ms dotnet 9.0.202
csharp 3.cs 2349ms 4.2ms 16.5MB 2330ms 3ms dotnet/aot 9.0.202
csharp 3.cs 2458ms 0.7ms 36.4MB 2433ms 10ms dotnet 9.0.202
csharp 1.cs 3869ms 62ms 16.4MB 3857ms 0ms dotnet/aot 9.0.202
csharp 1.cs timeout 0.0ms 23.2MB 4990ms 0ms mono 6.12.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 14ms 0.2ms 1.6MB 10ms 0ms odin 2024
csharp 4.cs 81ms 1.1ms 34.3MB 57ms 13ms dotnet 9.0.202
csharp 3.cs 110ms 3.4ms 13.6MB 97ms 0ms dotnet/aot 9.0.202
csharp 2.cs 118ms 6.1ms 36.9MB 93ms 10ms dotnet 9.0.202
csharp 1.cs 143ms 4.8ms 33.4MB 120ms 10ms dotnet 9.0.202
csharp 3.cs 168ms 2.2ms 33.6MB 147ms 7ms dotnet 9.0.202
csharp 1.cs 172ms 2.8ms 13.1MB 160ms 0ms dotnet/aot 9.0.202
csharp 1.cs 572ms 2.7ms 23.9MB 557ms 0ms mono 6.12.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 356ms 2.8ms 1.5MB 347ms 0ms odin 2024
odin 1-i.odin 358ms 0.8ms 1.5MB 350ms 0ms odin 2024
csharp 9.cs 364ms 3.9ms 27.8MB 340ms 7ms dotnet 9.0.202
csharp 8.cs 372ms 2.5ms 9.9MB 357ms 0ms dotnet/aot 9.0.202
csharp 8.cs 422ms 2.6ms 27.5MB 400ms 10ms dotnet 9.0.202
csharp 8.cs 1256ms 5.3ms 22.3MB 1240ms 3ms mono 6.12.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 38ms 0.5ms 1.5MB 30ms 0ms odin 2024
odin 1-i.odin 38ms 0.6ms 1.5MB 30ms 0ms odin 2024
csharp 8.cs 47ms 0.7ms 9.8MB 30ms 0ms dotnet/aot 9.0.202
csharp 8.cs 96ms 1.3ms 27.5MB 80ms 10ms dotnet 9.0.202
csharp 9.cs 97ms 4.6ms 27.8MB 73ms 10ms dotnet 9.0.202
csharp 8.cs 165ms 1.2ms 20.8MB 150ms 0ms mono 6.12.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 304ms 6.4ms 40.5MB 283ms 3ms odin 2024
csharp 1.cs 350ms 3.6ms 78.7MB 327ms 10ms dotnet/aot 9.0.202
csharp 1.cs 399ms 20ms 96.2MB 373ms 17ms dotnet 9.0.202
csharp 2.cs 401ms 3.8ms 35.7MB 380ms 10ms dotnet 9.0.202
csharp 2.cs 425ms 3.0ms 17.4MB 413ms 0ms dotnet/aot 9.0.202
csharp 1.cs 564ms 2.7ms 83.9MB 543ms 10ms mono 6.12.0
odin 2.odin 699ms 41ms 6.5MB 690ms 0ms odin 2024
csharp 2.cs 1867ms 2.9ms 29.4MB 1850ms 0ms mono 6.12.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 57ms 4.4ms 11.4MB 47ms 0ms odin 2024
csharp 1.cs 69ms 1.7ms 24.8MB 50ms 0ms dotnet/aot 9.0.202
csharp 1.cs 107ms 5.9ms 42.4MB 87ms 10ms dotnet 9.0.202
csharp 2.cs 112ms 3.0ms 11.8MB 97ms 0ms dotnet/aot 9.0.202
csharp 2.cs 131ms 2.0ms 29.9MB 110ms 13ms dotnet 9.0.202
csharp 1.cs 143ms 0.4ms 38.5MB 130ms 0ms mono 6.12.0
odin 2.odin 178ms 10ms 4.1MB 167ms 0ms odin 2024
csharp 2.cs 486ms 4.3ms 23.1MB 470ms 0ms 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 1878ms 31ms 10.4MB 7237ms 7ms dotnet/aot 9.0.202
csharp 3-m.cs 2004ms 130ms 29.9MB 7250ms 13ms dotnet 9.0.202
odin 1.odin 3602ms 5.1ms 2.9MB 3593ms 0ms odin 2024
csharp 3-m.cs 4769ms 182ms 27.6MB 18443ms 23ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 476ms 2.3ms 10.3MB 1813ms 3ms dotnet/aot 9.0.202
csharp 3-m.cs 532ms 2.2ms 29.9MB 1877ms 13ms dotnet 9.0.202
odin 1.odin 903ms 2.6ms 2.3MB 893ms 0ms odin 2024
csharp 3-m.cs 1261ms 106ms 27.4MB 4513ms 7ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 128ms 0.9ms 10.3MB 447ms 3ms dotnet/aot 9.0.202
csharp 3-m.cs 178ms 0.4ms 28.5MB 500ms 13ms dotnet 9.0.202
odin 1.odin 227ms 0.1ms 1.9MB 220ms 0ms odin 2024
csharp 3-m.cs 352ms 1.3ms 25.5MB 1173ms 10ms mono 6.12.0