Odin VS C# benchmarks

Current benchmark data was generated on Mon Apr 14 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 959ms 8.6ms 205.9MB 957ms 147ms dotnet 9.0.203
csharp 1.cs 974ms 8.9ms 178.1MB 980ms 130ms dotnet/aot 9.0.203
csharp 1.cs 1663ms 23ms 105.5MB 1877ms 200ms mono 6.12.0
odin 1.odin 2546ms 42ms 49.5MB 2517ms 17ms odin 2024

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 122ms 4.1ms 33.2MB 90ms 30ms dotnet/aot 9.0.203
csharp 1.cs 143ms 1.7ms 42.2MB 120ms 13ms mono 6.12.0
csharp 1.cs 195ms 2.0ms 49.9MB 157ms 40ms dotnet 9.0.203
odin 1.odin 223ms 1.9ms 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.1ms 1.6MB 0ms 0ms odin 2024
csharp 1.cs 9.0ms 3.9ms 6.8MB 0ms 0ms dotnet/aot 9.0.203
csharp 1.cs 31ms 0.6ms 21.3MB 20ms 0ms mono 6.12.0
csharp 1.cs 35ms 1.3ms 26.1MB 20ms 2ms dotnet 9.0.203

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 94ms 1.9ms 9.8MB 80ms 0ms dotnet/aot 9.0.203
csharp 2.cs 147ms 3.1ms 22.7MB 133ms 0ms mono 6.12.0
odin 1.odin 147ms 2.9ms 1.6MB 140ms 0ms odin 2024
csharp 2.cs 251ms 4.8ms 29.4MB 233ms 7ms dotnet 9.0.203
csharp 1.cs 1050ms 13ms 13.3MB 1033ms 3ms dotnet/aot 9.0.203
csharp 1.cs 1311ms 11ms 32.9MB 1293ms 20ms dotnet 9.0.203
csharp 1.cs 3329ms 33ms 43.6MB 3287ms 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 262ms 0.8ms 9.6MB 250ms 0ms dotnet/aot 9.0.203
csharp 2.cs 362ms 2.4ms 22.7MB 350ms 0ms mono 6.12.0
csharp 2.cs 402ms 3.7ms 29.5MB 387ms 7ms dotnet 9.0.203
odin 1.odin 433ms 0.9ms 1.6MB 420ms 0ms odin 2024
csharp 1.cs 3120ms 25ms 13.6MB 3103ms 10ms dotnet/aot 9.0.203
csharp 1.cs 3611ms 58ms 32.8MB 3597ms 17ms dotnet 9.0.203
csharp 1.cs timeout 0.0ms 45.7MB 4947ms 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 52ms 1.4ms 9.6MB 40ms 0ms dotnet/aot 9.0.203
odin 1.odin 67ms 0.8ms 1.6MB 60ms 0ms odin 2024
csharp 2.cs 96ms 2.2ms 23.0MB 83ms 0ms mono 6.12.0
csharp 2.cs 164ms 4.7ms 29.3MB 143ms 7ms dotnet 9.0.203
csharp 1.cs 1615ms 6.7ms 32.6MB 1600ms 13ms dotnet 9.0.203
csharp 1.cs 1819ms 4.9ms 28.8MB 1803ms 0ms mono 6.12.0
csharp 1.cs 1826ms 3.1ms 13.1MB 1810ms 0ms dotnet/aot 9.0.203

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 291ms 2.9ms 4.5MB 280ms 0ms odin 2024
csharp 4.cs 333ms 3.1ms 37.3MB 313ms 10ms dotnet 9.0.203
csharp 2.cs 520ms 21ms 39.7MB 497ms 10ms dotnet 9.0.203
csharp 1.cs 2044ms 11ms 36.2MB 2020ms 10ms dotnet 9.0.203
csharp 3.cs 2457ms 8.9ms 36.5MB 2437ms 10ms dotnet 9.0.203
csharp 3.cs 2526ms 11ms 16.3MB 2510ms 0ms dotnet/aot 9.0.203
csharp 1.cs 3567ms 3.4ms 16.2MB 3550ms 0ms dotnet/aot 9.0.203
csharp 1.cs timeout 0.0ms 23.2MB 4987ms 0ms mono 6.12.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 15ms 0.1ms 1.6MB 10ms 0ms odin 2024
csharp 4.cs 78ms 1.9ms 34.4MB 57ms 10ms dotnet 9.0.203
csharp 2.cs 111ms 1.9ms 36.9MB 90ms 10ms dotnet 9.0.203
csharp 3.cs 117ms 1.5ms 13.0MB 103ms 0ms dotnet/aot 9.0.203
csharp 1.cs 139ms 3.7ms 33.4MB 117ms 10ms dotnet 9.0.203
csharp 1.cs 159ms 2.4ms 13.6MB 143ms 0ms dotnet/aot 9.0.203
csharp 3.cs 161ms 0.4ms 33.9MB 140ms 10ms dotnet 9.0.203
csharp 1.cs 571ms 9.1ms 23.3MB 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 1.6ms 1.5MB 350ms 0ms odin 2024
odin 1-i.odin 359ms 1.2ms 1.5MB 350ms 0ms odin 2024
csharp 9.cs 360ms 2.9ms 27.6MB 340ms 7ms dotnet 9.0.203
csharp 8.cs 371ms 1.0ms 9.9MB 360ms 0ms dotnet/aot 9.0.203
csharp 8.cs 419ms 1.8ms 27.4MB 400ms 3ms dotnet 9.0.203
csharp 8.cs 1254ms 9.8ms 22.8MB 1240ms 0ms mono 6.12.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 39ms 0.4ms 1.5MB 30ms 0ms odin 2024
odin 1-i.odin 39ms 0.4ms 1.5MB 30ms 0ms odin 2024
csharp 8.cs 46ms 1.4ms 9.9MB 30ms 0ms dotnet/aot 9.0.203
csharp 9.cs 93ms 4.5ms 27.6MB 70ms 7ms dotnet 9.0.203
csharp 8.cs 99ms 8.1ms 27.6MB 80ms 3ms dotnet 9.0.203
csharp 8.cs 162ms 0.8ms 20.9MB 150ms 0ms mono 6.12.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 316ms 7.0ms 78.7MB 300ms 3ms dotnet/aot 9.0.203
csharp 1.cs 340ms 5.0ms 96.2MB 313ms 13ms dotnet 9.0.203
odin 1.odin 351ms 14ms 40.5MB 333ms 0ms odin 2024
csharp 2.cs 395ms 3.2ms 17.6MB 380ms 0ms dotnet/aot 9.0.203
csharp 2.cs 398ms 8.9ms 35.5MB 377ms 10ms dotnet 9.0.203
csharp 1.cs 556ms 7.3ms 83.9MB 533ms 10ms mono 6.12.0
odin 2.odin 717ms 45ms 6.5MB 703ms 0ms odin 2024
csharp 2.cs 1871ms 22ms 31.1MB 1857ms 0ms mono 6.12.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 55ms 2.3ms 11.4MB 43ms 0ms odin 2024
csharp 1.cs 64ms 0.5ms 24.9MB 50ms 0ms dotnet/aot 9.0.203
csharp 1.cs 96ms 1.4ms 42.5MB 73ms 10ms dotnet 9.0.203
csharp 2.cs 102ms 2.1ms 11.9MB 90ms 0ms dotnet/aot 9.0.203
csharp 2.cs 128ms 1.1ms 30.0MB 110ms 10ms dotnet 9.0.203
csharp 1.cs 146ms 2.8ms 38.1MB 133ms 0ms mono 6.12.0
odin 2.odin 179ms 13ms 4.1MB 173ms 0ms odin 2024
csharp 2.cs 483ms 2.6ms 21.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 1860ms 1.8ms 10.4MB 7253ms 10ms dotnet/aot 9.0.203
csharp 3-m.cs 1926ms 4.5ms 29.9MB 7353ms 23ms dotnet 9.0.203
odin 1.odin 3596ms 1.3ms 2.9MB 3590ms 0ms odin 2024
csharp 3-m.cs 4693ms 178ms 25.5MB 17890ms 10ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 494ms 33ms 10.5MB 1787ms 3ms dotnet/aot 9.0.203
csharp 3-m.cs 657ms 23ms 30.0MB 1690ms 10ms dotnet 9.0.203
odin 1.odin 903ms 1.6ms 2.3MB 890ms 0ms odin 2024
csharp 3-m.cs 1197ms 19ms 27.2MB 4503ms 13ms 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 1.5ms 10.4MB 450ms 0ms dotnet/aot 9.0.203
odin 1.odin 229ms 1.8ms 1.9MB 220ms 0ms odin 2024
csharp 3-m.cs 248ms 8.5ms 28.6MB 463ms 10ms dotnet 9.0.203
csharp 3-m.cs 352ms 13ms 24.8MB 1190ms 10ms mono 6.12.0