C VS C# benchmarks

Current benchmark data was generated on Wed Jan 22 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.)

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1.c 1.0ms 0.1ms 1.4MB 0ms 0ms zigcc 0.13.0
c 1.c 1.3ms 0.2ms 2.1MB 0ms 0ms gcc 14.2.0
c 1.c 1.4ms 0.1ms 2.0MB 0ms 0ms clang 14.0.0-1ubuntu1.1
csharp 1.cs 18ms 10ms 12.5MB 0ms 0ms dotnet/aot 9.0.102
csharp 1.cs 31ms 0.2ms 23.3MB 22ms 0ms mono 6.12.0
csharp 1.cs 35ms 0.3ms 30.3MB 16ms 4ms dotnet 9.0.102

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1-m.c 184ms 11ms 26.4MB 420ms 10ms gcc 14.2.0
c 1-m.c 291ms 2.0ms 29.6MB 997ms 27ms clang 14.0.0-1ubuntu1.1
csharp 6-m.cs 481ms 30ms 54.6MB 1310ms 20ms dotnet/aot 9.0.102
csharp 6-m.cs 761ms 32ms 77.6MB 2040ms 37ms dotnet 9.0.102
csharp 6-m.cs 999ms 25ms 64.5MB 2880ms 20ms mono 6.12.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1-m.c 28ms 1.7ms 12.7MB 63ms 0ms gcc 14.2.0
c 1-m.c 39ms 3.6ms 14.9MB 103ms 3ms clang 14.0.0-1ubuntu1.1
csharp 6-m.cs 89ms 4.3ms 43.4MB 157ms 13ms dotnet/aot 9.0.102
csharp 6-m.cs 171ms 13ms 64.0MB 250ms 20ms dotnet 9.0.102
csharp 6-m.cs 193ms 0.8ms 49.5MB 377ms 13ms mono 6.12.0

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1-mffi.c 223ms 18ms 7.6MB 810ms 20ms clang 14.0.0-1ubuntu1.1
c 1-mffi.c 297ms 47ms 6.5MB 860ms 3ms gcc 14.2.0
c 1-ffi.c 433ms 2.9ms 6.0MB 420ms 0ms zigcc 0.13.0
c 1-mffi.c 434ms 2.5ms 6.0MB 420ms 0ms zigcc 0.13.0
c 1-ffi.c 458ms 1.7ms 6.6MB 447ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 541ms 1.6ms 6.7MB 530ms 0ms gcc 14.2.0
csharp 2.cs 1093ms 64ms 46.0MB 1057ms 20ms dotnet 9.0.102
csharp 1.cs 2043ms 10ms 42.9MB 2010ms 20ms dotnet 9.0.102
csharp 3.cs 2350ms 7.8ms 22.1MB 2337ms 3ms dotnet/aot 9.0.102
csharp 3.cs 2712ms 331ms 42.9MB 2683ms 10ms dotnet 9.0.102
csharp 1.cs 3946ms 98ms 22.2MB 3927ms 3ms dotnet/aot 9.0.102
csharp 1.cs timeout 0.0ms 24.4MB 4983ms 3ms mono 6.12.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1-mffi.c 16ms 1.8ms 8.5MB 27ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 20ms 0.1ms 3.0MB 10ms 0ms zigcc 0.13.0
c 1-mffi.c 21ms 1.3ms 3.0MB 10ms 0ms zigcc 0.13.0
c 1-mffi.c 22ms 0.4ms 5.6MB 53ms 0ms gcc 14.2.0
c 1-ffi.c 22ms 0.5ms 3.6MB 10ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 25ms 0.1ms 3.8MB 13ms 0ms gcc 14.2.0
csharp 3.cs 111ms 1.1ms 18.9MB 93ms 3ms dotnet/aot 9.0.102
csharp 2.cs 132ms 0.7ms 42.9MB 113ms 7ms dotnet 9.0.102
csharp 1.cs 139ms 1.8ms 40.0MB 120ms 3ms dotnet 9.0.102
csharp 3.cs 169ms 5.2ms 40.2MB 143ms 7ms dotnet 9.0.102
csharp 1.cs 173ms 2.3ms 19.2MB 160ms 0ms dotnet/aot 9.0.102
csharp 1.cs 566ms 2.5ms 23.4MB 547ms 3ms mono 6.12.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 8-i.c 246ms 1.0ms 1.5MB 233ms 0ms zigcc 0.13.0
c 5.c 298ms 0.7ms 1.5MB 290ms 0ms zigcc 0.13.0
c 8-i.c 301ms 1.9ms 2.1MB 290ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 311ms 1.5ms 2.3MB 300ms 0ms gcc 14.2.0
c 5.c 311ms 0.3ms 2.3MB 300ms 0ms gcc 14.2.0
c 5.c 315ms 0.3ms 2.1MB 300ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 315ms 1.0ms 1.5MB 303ms 0ms zigcc 0.13.0
c 2.c 317ms 2.6ms 2.1MB 307ms 0ms clang 14.0.0-1ubuntu1.1
c 8-i.c 332ms 0.9ms 2.3MB 320ms 0ms gcc 14.2.0
csharp 9.cs 360ms 2.4ms 34.2MB 340ms 10ms dotnet 9.0.102
csharp 8.cs 370ms 0.4ms 15.7MB 357ms 0ms dotnet/aot 9.0.102
csharp 8.cs 418ms 0.9ms 33.8MB 393ms 10ms dotnet 9.0.102
csharp 8.cs 1246ms 5.3ms 22.4MB 1230ms 0ms mono 6.12.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 8-i.c 26ms 0.1ms 1.5MB 20ms 0ms zigcc 0.13.0
c 5.c 32ms 0.2ms 1.5MB 20ms 0ms zigcc 0.13.0
c 8-i.c 32ms 0.6ms 2.1MB 23ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 33ms 0.3ms 1.5MB 20ms 0ms zigcc 0.13.0
c 2.c 33ms 0.1ms 2.3MB 23ms 0ms gcc 14.2.0
c 5.c 33ms 0.1ms 2.1MB 27ms 0ms clang 14.0.0-1ubuntu1.1
c 5.c 34ms 0.3ms 2.3MB 27ms 0ms gcc 14.2.0
c 8-i.c 35ms 0.1ms 2.3MB 27ms 0ms gcc 14.2.0
c 2.c 36ms 3.1ms 2.1MB 27ms 0ms clang 14.0.0-1ubuntu1.1
csharp 8.cs 46ms 1.7ms 16.0MB 30ms 0ms dotnet/aot 9.0.102
csharp 9.cs 92ms 1.1ms 34.0MB 77ms 0ms dotnet 9.0.102
csharp 8.cs 105ms 9.8ms 34.0MB 73ms 10ms dotnet 9.0.102
csharp 8.cs 162ms 2.1ms 26.3MB 147ms 3ms mono 6.12.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1.c 257ms 1.9ms 40.9MB 240ms 0ms gcc 14.2.0
c 1.c 267ms 2.2ms 41.0MB 247ms 3ms clang 14.0.0-1ubuntu1.1
c 1.c 292ms 2.5ms 40.3MB 273ms 3ms zigcc 0.13.0
csharp 1.cs 308ms 4.3ms 54.8MB 287ms 10ms dotnet/aot 9.0.102
csharp 1.cs 349ms 1.7ms 70.4MB 323ms 10ms dotnet 9.0.102
csharp 2.cs 396ms 1.6ms 19.9MB 380ms 3ms dotnet/aot 9.0.102
csharp 2.cs 400ms 11ms 38.9MB 370ms 10ms dotnet 9.0.102
csharp 1.cs 535ms 6.8ms 86.0MB 507ms 10ms mono 6.12.0
csharp 2.cs 1874ms 13ms 31.5MB 1860ms 0ms mono 6.12.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1.c 49ms 1.7ms 11.6MB 40ms 0ms gcc 14.2.0
c 1.c 51ms 2.0ms 11.7MB 37ms 0ms clang 14.0.0-1ubuntu1.1
c 1.c 54ms 2.1ms 11.0MB 40ms 0ms zigcc 0.13.0
csharp 1.cs 65ms 0.2ms 27.5MB 50ms 3ms dotnet/aot 9.0.102
csharp 1.cs 98ms 1.1ms 45.5MB 73ms 10ms dotnet 9.0.102
csharp 2.cs 102ms 0.7ms 17.8MB 87ms 3ms dotnet/aot 9.0.102
csharp 2.cs 130ms 1.9ms 36.2MB 107ms 7ms dotnet 9.0.102
csharp 1.cs 144ms 1.5ms 40.3MB 127ms 7ms mono 6.12.0
csharp 2.cs 484ms 8.1ms 24.9MB 463ms 3ms mono 6.12.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 6-im.c 969ms 4.6ms 4.1MB 3777ms 0ms gcc 14.2.0
c 4-m.c 976ms 6.3ms 4.1MB 3807ms 0ms gcc 14.2.0
c 6-im.c 1005ms 2.0ms 5.3MB 3930ms 3ms clang 14.0.0-1ubuntu1.1
c 5-im.c 1102ms 12ms 4.1MB 4300ms 0ms gcc 14.2.0
c 4-m.c 1121ms 6.6ms 5.2MB 4377ms 3ms clang 14.0.0-1ubuntu1.1
c 5-im.c 1349ms 29ms 7.3MB 5250ms 7ms clang 14.0.0-1ubuntu1.1
c 3-m.c 1870ms 63ms 7.2MB 7260ms 3ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 1873ms 37ms 18.4MB 7180ms 7ms dotnet/aot 9.0.102
csharp 3-m.cs 1971ms 75ms 38.1MB 7220ms 13ms dotnet 9.0.102
c 3-m.c 1983ms 19ms 4.1MB 7780ms 3ms gcc 14.2.0
csharp 3-m.cs 4634ms 249ms 30.7MB 17543ms 10ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 4-m.c 253ms 0.8ms 4.1MB 963ms 0ms gcc 14.2.0
c 6-im.c 256ms 5.0ms 4.0MB 970ms 0ms gcc 14.2.0
c 6-im.c 263ms 9.0ms 5.3MB 977ms 3ms clang 14.0.0-1ubuntu1.1
c 5-im.c 291ms 13ms 4.0MB 1097ms 0ms gcc 14.2.0
c 4-m.c 292ms 5.9ms 7.0MB 1100ms 3ms clang 14.0.0-1ubuntu1.1
c 5-im.c 363ms 27ms 5.3MB 1363ms 3ms clang 14.0.0-1ubuntu1.1
c 3-m.c 474ms 12ms 7.2MB 1800ms 0ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 476ms 1.6ms 18.2MB 1790ms 10ms dotnet/aot 9.0.102
c 3-m.c 504ms 4.5ms 4.0MB 1957ms 0ms gcc 14.2.0
csharp 3-m.cs 542ms 12ms 39.9MB 1870ms 10ms dotnet 9.0.102
csharp 3-m.cs 1203ms 18ms 31.0MB 4483ms 7ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 6-im.c 72ms 2.5ms 4.0MB 250ms 0ms gcc 14.2.0
c 6-im.c 72ms 0.6ms 7.3MB 240ms 0ms clang 14.0.0-1ubuntu1.1
c 4-m.c 77ms 7.1ms 4.0MB 263ms 0ms gcc 14.2.0
c 4-m.c 80ms 0.6ms 5.2MB 273ms 0ms clang 14.0.0-1ubuntu1.1
c 5-im.c 80ms 0.7ms 4.0MB 280ms 0ms gcc 14.2.0
c 5-im.c 94ms 2.4ms 5.5MB 330ms 0ms clang 14.0.0-1ubuntu1.1
c 3-m.c 124ms 0.9ms 5.1MB 443ms 0ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 129ms 1.0ms 18.4MB 440ms 7ms dotnet/aot 9.0.102
c 3-m.c 133ms 1.5ms 4.0MB 493ms 0ms gcc 14.2.0
csharp 3-m.cs 193ms 15ms 36.4MB 497ms 10ms dotnet 9.0.102
csharp 3-m.cs 348ms 2.4ms 26.4MB 1160ms 7ms mono 6.12.0