C 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.)

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1.c 1.1ms 0.1ms 1.3MB 0ms 0ms zigcc 0.14.0
c 1.c 1.2ms 0.1ms 2.1MB 0ms 0ms clang 14.0.0-1ubuntu1.1
c 1.c 1.2ms 0.1ms 2.1MB 0ms 0ms gcc 14.2.0
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

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1-m.c 182ms 2.9ms 24.5MB 420ms 7ms gcc 14.2.0
c 1-m.c 291ms 5.0ms 25.9MB 980ms 17ms clang 14.0.0-1ubuntu1.1
csharp 6-m.cs 445ms 3.9ms 46.0MB 1197ms 17ms dotnet/aot 9.0.203
csharp 6-m.cs 822ms 47ms 69.3MB 1833ms 30ms dotnet 9.0.203
csharp 6-m.cs 1007ms 15ms 64.5MB 2930ms 30ms 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 2.9ms 12.1MB 63ms 0ms gcc 14.2.0
c 1-m.c 35ms 0.6ms 15.1MB 100ms 0ms clang 14.0.0-1ubuntu1.1
csharp 6-m.cs 93ms 0.8ms 36.5MB 160ms 17ms dotnet/aot 9.0.203
csharp 6-m.cs 197ms 3.9ms 58.2MB 383ms 17ms mono 6.12.0
csharp 6.cs 197ms 3.4ms 57.7MB 260ms 30ms dotnet 9.0.203

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1-mffi.c 230ms 12ms 7.4MB 857ms 17ms clang 14.0.0-1ubuntu1.1
c 1-mffi.c 265ms 1.9ms 6.7MB 807ms 0ms gcc 14.2.0
c 1-ffi.c 330ms 1.2ms 5.9MB 320ms 0ms zigcc 0.14.0
c 1-mffi.c 330ms 0.9ms 5.9MB 320ms 0ms zigcc 0.14.0
csharp 4.cs 333ms 3.1ms 37.3MB 313ms 10ms dotnet 9.0.203
c 1-ffi.c 452ms 1.5ms 6.4MB 440ms 0ms clang 14.0.0-1ubuntu1.1
csharp 2.cs 520ms 21ms 39.7MB 497ms 10ms dotnet 9.0.203
c 1-ffi.c 542ms 1.6ms 6.7MB 530ms 0ms gcc 14.2.0
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
c 1-mffi.c 15ms 0.5ms 4.8MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 16ms 0.1ms 3.0MB 10ms 0ms zigcc 0.14.0
c 1-mffi.c 16ms 0.1ms 3.0MB 10ms 0ms zigcc 0.14.0
c 1-mffi.c 17ms 1.6ms 3.6MB 43ms 0ms gcc 14.2.0
c 1-ffi.c 22ms 0.3ms 3.6MB 10ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 26ms 0.9ms 3.6MB 20ms 0ms gcc 14.2.0
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
c 8-i.c 267ms 0.5ms 1.5MB 260ms 0ms zigcc 0.14.0
c 8-i.c 302ms 1.0ms 2.1MB 290ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 311ms 0.4ms 2.3MB 300ms 0ms gcc 14.2.0
c 5.c 315ms 0.7ms 2.3MB 303ms 0ms gcc 14.2.0
c 2.c 315ms 1.4ms 1.5MB 310ms 0ms zigcc 0.14.0
c 5.c 315ms 0.9ms 1.5MB 307ms 0ms zigcc 0.14.0
c 5.c 318ms 3.4ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 320ms 0.6ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
c 8-i.c 334ms 0.4ms 2.3MB 323ms 0ms gcc 14.2.0
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
c 8-i.c 29ms 0.2ms 1.5MB 20ms 0ms zigcc 0.14.0
c 8-i.c 33ms 0.4ms 2.1MB 23ms 0ms clang 14.0.0-1ubuntu1.1
c 5.c 34ms 0.3ms 2.3MB 30ms 0ms gcc 14.2.0
c 5.c 34ms 0.5ms 1.5MB 27ms 0ms zigcc 0.14.0
c 2.c 34ms 0.6ms 2.3MB 27ms 0ms gcc 14.2.0
c 2.c 34ms 0.2ms 1.5MB 30ms 0ms zigcc 0.14.0
c 2.c 35ms 0.8ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 5.c 35ms 0.7ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 8-i.c 36ms 0.2ms 2.3MB 30ms 0ms gcc 14.2.0
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
c 1.c 279ms 1.8ms 40.9MB 263ms 0ms clang 14.0.0-1ubuntu1.1
c 1.c 281ms 2.9ms 40.2MB 263ms 0ms zigcc 0.14.0
c 1.c 301ms 7.8ms 41.0MB 283ms 0ms gcc 14.2.0
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
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
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
c 1.c 52ms 2.6ms 11.8MB 40ms 0ms gcc 14.2.0
c 1.c 53ms 0.9ms 11.5MB 40ms 0ms clang 14.0.0-1ubuntu1.1
c 1.c 59ms 3.0ms 11.0MB 50ms 0ms zigcc 0.14.0
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
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
c 6-im.c 963ms 12ms 2.0MB 3780ms 0ms gcc 14.2.0
c 4-m.c 965ms 1.5ms 2.0MB 3797ms 0ms gcc 14.2.0
c 6-im.c 1008ms 5.5ms 3.3MB 3950ms 3ms clang 14.0.0-1ubuntu1.1
c 5-im.c 1088ms 1.2ms 2.0MB 4290ms 0ms gcc 14.2.0
c 4-m.c 1122ms 3.5ms 3.3MB 4407ms 0ms clang 14.0.0-1ubuntu1.1
c 5-im.c 1342ms 23ms 3.3MB 5257ms 0ms clang 14.0.0-1ubuntu1.1
c 3-m.c 1834ms 11ms 3.1MB 7227ms 7ms clang 14.0.0-1ubuntu1.1
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
c 3-m.c 1969ms 3.6ms 2.0MB 7777ms 0ms gcc 14.2.0
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
c 6-im.c 247ms 1.3ms 2.0MB 947ms 0ms gcc 14.2.0
c 4-m.c 255ms 2.8ms 2.0MB 973ms 0ms gcc 14.2.0
c 6-im.c 269ms 18ms 3.3MB 1007ms 3ms clang 14.0.0-1ubuntu1.1
c 5-im.c 284ms 3.3ms 2.0MB 1090ms 0ms gcc 14.2.0
c 4-m.c 289ms 1.8ms 3.1MB 1103ms 0ms clang 14.0.0-1ubuntu1.1
c 5-im.c 341ms 1.0ms 3.3MB 1310ms 0ms clang 14.0.0-1ubuntu1.1
c 3-m.c 467ms 6.6ms 3.3MB 1810ms 0ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 494ms 33ms 10.5MB 1787ms 3ms dotnet/aot 9.0.203
c 3-m.c 497ms 0.7ms 2.0MB 1937ms 0ms gcc 14.2.0
csharp 3-m.cs 657ms 23ms 30.0MB 1690ms 10ms dotnet 9.0.203
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
c 6-im.c 69ms 0.2ms 2.0MB 250ms 0ms gcc 14.2.0
c 4-m.c 71ms 0.4ms 2.0MB 253ms 0ms gcc 14.2.0
c 6-im.c 71ms 1.3ms 3.3MB 250ms 0ms clang 14.0.0-1ubuntu1.1
c 4-m.c 78ms 0.9ms 3.1MB 280ms 0ms clang 14.0.0-1ubuntu1.1
c 5-im.c 79ms 1.7ms 2.0MB 283ms 0ms gcc 14.2.0
c 5-im.c 91ms 0.7ms 3.0MB 330ms 0ms clang 14.0.0-1ubuntu1.1
c 3-m.c 122ms 1.0ms 3.3MB 450ms 0ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 128ms 1.5ms 10.4MB 450ms 0ms dotnet/aot 9.0.203
c 3-m.c 131ms 0.8ms 2.0MB 490ms 0ms gcc 14.2.0
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