C VS C# benchmarks

Current benchmark data was generated on Sun Jun 01 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.0ms 1.4MB 0ms 0ms zigcc 0.14.1
c 1.c 1.2ms 0.0ms 2.1MB 0ms 0ms gcc 15.1.0
c 1.c 1.2ms 0.0ms 2.1MB 0ms 0ms clang 14.0.0-1ubuntu1.1
csharp 1.cs 7.8ms 2.1ms 9.5MB 0ms 0ms dotnet/aot 9.0.300
csharp 1.cs 30ms 0.5ms 21.7MB 18ms 2ms mono 6.12.0
csharp 1.cs 34ms 1.1ms 26.1MB 20ms 2ms dotnet 9.0.300

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1-m.c 172ms 2.2ms 23.6MB 403ms 7ms gcc 15.1.0
c 1-m.c 292ms 0.1ms 25.7MB 1000ms 27ms clang 14.0.0-1ubuntu1.1
csharp 6-m.cs 481ms 13ms 47.1MB 1307ms 20ms dotnet/aot 9.0.300
csharp 6-m.cs 714ms 22ms 68.3MB 1957ms 27ms dotnet 9.0.300
csharp 6-m.cs 1010ms 11ms 67.2MB 2927ms 23ms 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 26ms 1.5ms 13.0MB 57ms 3ms gcc 15.1.0
c 1-m.c 36ms 1.0ms 15.0MB 103ms 0ms clang 14.0.0-1ubuntu1.1
csharp 6-m.cs 97ms 6.0ms 35.6MB 167ms 13ms dotnet/aot 9.0.300
csharp 6-m.cs 179ms 8.7ms 56.7MB 260ms 27ms dotnet 9.0.300
csharp 6-m.cs 193ms 3.0ms 60.0MB 377ms 20ms 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 224ms 14ms 7.5MB 840ms 13ms clang 14.0.0-1ubuntu1.1
c 1-mffi.c 269ms 8.5ms 6.5MB 817ms 0ms gcc 15.1.0
c 1-mffi.c 330ms 1.5ms 6.0MB 320ms 0ms zigcc 0.14.1
c 1-ffi.c 332ms 2.8ms 6.0MB 323ms 0ms zigcc 0.14.1
csharp 4.cs 332ms 0.7ms 37.3MB 310ms 10ms dotnet 9.0.300
c 1-ffi.c 452ms 0.9ms 6.5MB 440ms 0ms clang 14.0.0-1ubuntu1.1
csharp 2.cs 541ms 67ms 39.9MB 520ms 13ms dotnet 9.0.300
c 1-ffi.c 543ms 2.3ms 6.6MB 533ms 0ms gcc 15.1.0
csharp 1.cs 2058ms 8.8ms 36.7MB 2030ms 10ms dotnet 9.0.300
csharp 3.cs 2348ms 2.6ms 16.4MB 2333ms 0ms dotnet/aot 9.0.300
csharp 3.cs 2443ms 2.4ms 36.4MB 2420ms 10ms dotnet 9.0.300
csharp 1.cs 3889ms 13ms 16.3MB 3873ms 0ms dotnet/aot 9.0.300
csharp 1.cs timeout 0.0ms 24.1MB 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.6MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 16ms 0.1ms 3.0MB 10ms 0ms zigcc 0.14.1
c 1-mffi.c 16ms 0.2ms 3.0MB 10ms 0ms zigcc 0.14.1
c 1-mffi.c 17ms 2.0ms 3.8MB 43ms 0ms gcc 15.1.0
c 1-ffi.c 21ms 0.1ms 3.5MB 10ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 25ms 0.4ms 3.8MB 20ms 0ms gcc 15.1.0
csharp 4.cs 82ms 8.1ms 34.5MB 60ms 10ms dotnet 9.0.300
csharp 3.cs 108ms 3.3ms 13.5MB 97ms 0ms dotnet/aot 9.0.300
csharp 2.cs 121ms 0.6ms 37.0MB 97ms 10ms dotnet 9.0.300
csharp 1.cs 136ms 2.2ms 33.5MB 120ms 10ms dotnet 9.0.300
csharp 3.cs 169ms 5.5ms 33.9MB 143ms 10ms dotnet 9.0.300
csharp 1.cs 175ms 1.1ms 11.9MB 167ms 0ms dotnet/aot 9.0.300
csharp 1.cs 564ms 3.2ms 23.9MB 550ms 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 270ms 3.2ms 1.5MB 263ms 0ms zigcc 0.14.1
c 8-i.c 303ms 3.1ms 2.1MB 293ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 309ms 1.0ms 2.3MB 300ms 0ms gcc 15.1.0
c 2.c 313ms 2.0ms 1.5MB 303ms 0ms zigcc 0.14.1
c 5.c 313ms 1.2ms 2.3MB 307ms 0ms gcc 15.1.0
c 5.c 315ms 1.6ms 1.5MB 307ms 0ms zigcc 0.14.1
c 5.c 315ms 1.6ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 322ms 4.3ms 2.1MB 317ms 0ms clang 14.0.0-1ubuntu1.1
c 8-i.c 337ms 1.0ms 2.3MB 330ms 0ms gcc 15.1.0
csharp 9.cs 360ms 3.8ms 27.9MB 340ms 10ms dotnet 9.0.300
csharp 8.cs 370ms 3.3ms 9.9MB 360ms 0ms dotnet/aot 9.0.300
csharp 8.cs 419ms 1.1ms 27.6MB 400ms 3ms dotnet 9.0.300
csharp 8.cs 1252ms 4.8ms 22.3MB 1237ms 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.6ms 1.5MB 20ms 0ms zigcc 0.14.1
c 8-i.c 33ms 0.2ms 2.1MB 20ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 33ms 0.3ms 1.5MB 30ms 0ms zigcc 0.14.1
c 5.c 33ms 0.3ms 2.3MB 30ms 0ms gcc 15.1.0
c 5.c 34ms 0.4ms 1.5MB 27ms 0ms zigcc 0.14.1
c 2.c 34ms 0.9ms 2.3MB 27ms 0ms gcc 15.1.0
c 5.c 34ms 1.0ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 34ms 0.7ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 8-i.c 35ms 0.1ms 2.3MB 30ms 0ms gcc 15.1.0
csharp 8.cs 44ms 0.2ms 9.9MB 30ms 0ms dotnet/aot 9.0.300
csharp 9.cs 93ms 3.0ms 27.6MB 73ms 7ms dotnet 9.0.300
csharp 8.cs 95ms 2.3ms 27.6MB 77ms 3ms dotnet 9.0.300
csharp 8.cs 161ms 0.7ms 22.4MB 147ms 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 261ms 9.0ms 40.9MB 243ms 0ms gcc 15.1.0
c 1.c 271ms 2.2ms 41.0MB 257ms 0ms clang 14.0.0-1ubuntu1.1
c 1.c 285ms 5.2ms 40.3MB 270ms 0ms zigcc 0.14.1
csharp 1.cs 297ms 3.2ms 78.8MB 273ms 7ms dotnet/aot 9.0.300
csharp 1.cs 345ms 12ms 96.5MB 317ms 17ms dotnet 9.0.300
csharp 2.cs 392ms 2.8ms 17.7MB 380ms 0ms dotnet/aot 9.0.300
csharp 2.cs 399ms 7.5ms 35.3MB 377ms 13ms dotnet 9.0.300
csharp 1.cs 538ms 2.7ms 84.2MB 517ms 10ms mono 6.12.0
csharp 2.cs 1888ms 39ms 27.4MB 1873ms 0ms mono 6.12.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1.c 53ms 3.0ms 11.7MB 40ms 0ms clang 14.0.0-1ubuntu1.1
c 1.c 55ms 2.4ms 11.6MB 43ms 0ms gcc 15.1.0
c 1.c 58ms 2.2ms 11.0MB 47ms 0ms zigcc 0.14.1
csharp 1.cs 64ms 1.2ms 24.9MB 50ms 0ms dotnet/aot 9.0.300
csharp 2.cs 101ms 1.4ms 11.9MB 90ms 0ms dotnet/aot 9.0.300
csharp 1.cs 108ms 2.1ms 42.5MB 83ms 7ms dotnet 9.0.300
csharp 2.cs 134ms 3.2ms 29.9MB 110ms 7ms dotnet 9.0.300
csharp 1.cs 144ms 1.5ms 38.1MB 127ms 3ms mono 6.12.0
csharp 2.cs 488ms 5.9ms 21.1MB 473ms 0ms mono 6.12.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 3-m.c 736ms 1.2ms 2.0MB 2897ms 0ms gcc 15.1.0
c 6-im.c 951ms 0.7ms 2.0MB 3743ms 0ms gcc 15.1.0
c 4-m.c 999ms 19ms 2.0MB 3907ms 0ms gcc 15.1.0
c 6-im.c 1002ms 3.9ms 3.3MB 3943ms 0ms clang 14.0.0-1ubuntu1.1
c 4-m.c 1132ms 22ms 3.4MB 4423ms 7ms clang 14.0.0-1ubuntu1.1
c 5-im.c 1142ms 1.9ms 2.0MB 4507ms 0ms gcc 15.1.0
c 5-im.c 1330ms 4.1ms 3.3MB 5240ms 0ms clang 14.0.0-1ubuntu1.1
c 3-m.c 1830ms 5.6ms 3.3MB 7220ms 10ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 1881ms 41ms 10.4MB 7243ms 7ms dotnet/aot 9.0.300
csharp 3-m.cs 1938ms 34ms 29.9MB 7323ms 20ms dotnet 9.0.300
csharp 3-m.cs 4838ms 168ms 25.5MB 18427ms 13ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 3-m.c 193ms 1.4ms 2.0MB 737ms 0ms gcc 15.1.0
c 6-im.c 247ms 2.2ms 2.0MB 943ms 0ms gcc 15.1.0
c 4-m.c 258ms 0.8ms 2.0MB 990ms 0ms gcc 15.1.0
c 6-im.c 259ms 2.3ms 3.3MB 983ms 0ms clang 14.0.0-1ubuntu1.1
c 4-m.c 290ms 4.2ms 3.1MB 1107ms 0ms clang 14.0.0-1ubuntu1.1
c 5-im.c 303ms 19ms 2.0MB 1153ms 0ms gcc 15.1.0
c 5-im.c 341ms 2.7ms 3.4MB 1310ms 0ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 475ms 1.3ms 10.5MB 1813ms 0ms dotnet/aot 9.0.300
c 3-m.c 476ms 17ms 3.3MB 1823ms 0ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 529ms 1.2ms 30.0MB 1873ms 10ms dotnet 9.0.300
csharp 3-m.cs 1200ms 10ms 26.7MB 4517ms 7ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 3-m.c 55ms 1.1ms 2.0MB 193ms 0ms gcc 15.1.0
c 6-im.c 70ms 0.8ms 3.3MB 250ms 0ms clang 14.0.0-1ubuntu1.1
c 4-m.c 72ms 0.8ms 2.1MB 260ms 0ms gcc 15.1.0
c 6-im.c 72ms 6.7ms 2.0MB 257ms 0ms gcc 15.1.0
c 4-m.c 78ms 0.4ms 3.1MB 280ms 0ms clang 14.0.0-1ubuntu1.1
c 5-im.c 81ms 0.6ms 2.0MB 297ms 0ms gcc 15.1.0
c 5-im.c 92ms 0.5ms 3.3MB 330ms 0ms clang 14.0.0-1ubuntu1.1
c 3-m.c 123ms 2.1ms 3.4MB 453ms 0ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 129ms 0.6ms 10.6MB 447ms 10ms dotnet/aot 9.0.300
csharp 3-m.cs 179ms 3.3ms 28.4MB 497ms 17ms dotnet 9.0.300
csharp 3-m.cs 341ms 6.9ms 25.5MB 1153ms 7ms mono 6.12.0