C VS C# benchmarks

Current benchmark data was generated on Thu May 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.3MB 0ms 0ms zigcc 0.14.0
c 1.c 1.2ms 0.0ms 2.1MB 0ms 0ms gcc 15.1.0
c 1.c 1.3ms 0.1ms 2.1MB 0ms 0ms clang 14.0.0-1ubuntu1.1
csharp 1.cs 10ms 5.6ms 7.6MB 0ms 0ms dotnet/aot 9.0.203
csharp 1.cs 31ms 1.0ms 21.4MB 20ms 0ms mono 6.12.0
csharp 1.cs 34ms 0.4ms 26.0MB 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 171ms 2.8ms 23.5MB 400ms 10ms gcc 15.1.0
c 1-m.c 299ms 5.2ms 25.7MB 1013ms 33ms clang 14.0.0-1ubuntu1.1
csharp 6-m.cs 456ms 12ms 46.2MB 1207ms 20ms dotnet/aot 9.0.203
csharp 6-m.cs 743ms 18ms 68.1MB 2037ms 30ms dotnet 9.0.203
csharp 6-m.cs 1019ms 22ms 66.8MB 2907ms 27ms 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 27ms 0.7ms 13.6MB 60ms 0ms gcc 15.1.0
c 1-m.c 37ms 0.6ms 14.9MB 103ms 3ms clang 14.0.0-1ubuntu1.1
csharp 6-m.cs 97ms 2.6ms 36.0MB 163ms 13ms dotnet/aot 9.0.203
csharp 6-m.cs 178ms 11ms 58.2MB 260ms 27ms dotnet 9.0.203
csharp 6-m.cs 196ms 3.6ms 55.8MB 380ms 17ms 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 8.7ms 7.6MB 827ms 10ms clang 14.0.0-1ubuntu1.1
c 1-mffi.c 264ms 0.7ms 6.6MB 813ms 0ms gcc 15.1.0
c 1-ffi.c 329ms 0.7ms 6.0MB 320ms 0ms zigcc 0.14.0
csharp 4.cs 331ms 1.8ms 37.2MB 310ms 10ms dotnet 9.0.203
c 1-mffi.c 331ms 2.6ms 6.0MB 323ms 0ms zigcc 0.14.0
c 1-ffi.c 452ms 1.2ms 6.5MB 440ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 543ms 1.9ms 6.8MB 533ms 0ms gcc 15.1.0
csharp 2.cs 550ms 85ms 39.6MB 527ms 13ms dotnet 9.0.203
csharp 1.cs 2035ms 6.8ms 36.6MB 2010ms 10ms dotnet 9.0.203
csharp 3.cs 2456ms 6.5ms 36.5MB 2430ms 10ms dotnet 9.0.203
csharp 3.cs 2525ms 0.7ms 16.3MB 2510ms 0ms dotnet/aot 9.0.203
csharp 1.cs 3562ms 4.9ms 16.3MB 3547ms 0ms dotnet/aot 9.0.203
csharp 1.cs timeout 0.0ms 22.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.3ms 4.5MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 1-ffi.c 16ms 0.0ms 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 16ms 0.7ms 3.5MB 43ms 0ms gcc 15.1.0
c 1-ffi.c 22ms 1.1ms 3.6MB 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 81ms 8.6ms 34.3MB 53ms 10ms dotnet 9.0.203
csharp 3.cs 116ms 1.9ms 13.0MB 103ms 0ms dotnet/aot 9.0.203
csharp 1.cs 135ms 0.8ms 33.9MB 113ms 10ms dotnet 9.0.203
csharp 2.cs 150ms 60ms 36.8MB 127ms 10ms dotnet 9.0.203
csharp 1.cs 156ms 1.3ms 13.0MB 140ms 0ms dotnet/aot 9.0.203
csharp 3.cs 166ms 5.6ms 33.8MB 143ms 7ms dotnet 9.0.203
csharp 1.cs 575ms 10ms 23.5MB 560ms 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.0ms 1.5MB 260ms 0ms zigcc 0.14.0
c 8-i.c 302ms 1.1ms 2.1MB 290ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 309ms 1.2ms 2.3MB 300ms 0ms gcc 15.1.0
c 5.c 313ms 1.1ms 2.3MB 300ms 0ms gcc 15.1.0
c 2.c 315ms 3.3ms 1.5MB 307ms 0ms zigcc 0.14.0
c 5.c 315ms 1.3ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
c 5.c 316ms 1.7ms 1.5MB 307ms 0ms zigcc 0.14.0
c 2.c 318ms 1.3ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
c 8-i.c 337ms 0.2ms 2.3MB 330ms 0ms gcc 15.1.0
csharp 9.cs 358ms 2.8ms 28.0MB 340ms 7ms dotnet 9.0.203
csharp 8.cs 370ms 3.1ms 9.9MB 360ms 0ms dotnet/aot 9.0.203
csharp 8.cs 423ms 3.6ms 27.5MB 400ms 7ms dotnet 9.0.203
csharp 8.cs 1250ms 5.1ms 20.4MB 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.3ms 1.5MB 20ms 0ms zigcc 0.14.0
c 8-i.c 33ms 0.1ms 2.1MB 23ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 33ms 0.5ms 1.5MB 27ms 0ms zigcc 0.14.0
c 2.c 33ms 0.5ms 2.3MB 27ms 0ms gcc 15.1.0
c 5.c 33ms 0.2ms 2.3MB 27ms 0ms gcc 15.1.0
c 5.c 34ms 0.2ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 5.c 35ms 0.4ms 1.5MB 30ms 0ms zigcc 0.14.0
c 2.c 35ms 1.6ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 8-i.c 36ms 0.1ms 2.3MB 30ms 0ms gcc 15.1.0
csharp 8.cs 46ms 1.1ms 9.9MB 37ms 0ms dotnet/aot 9.0.203
csharp 9.cs 90ms 1.4ms 27.6MB 73ms 3ms dotnet 9.0.203
csharp 8.cs 94ms 1.2ms 27.5MB 80ms 3ms dotnet 9.0.203
csharp 8.cs 164ms 3.9ms 22.8MB 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 14ms 40.8MB 263ms 0ms clang 14.0.0-1ubuntu1.1
c 1.c 281ms 12ms 41.1MB 263ms 0ms gcc 15.1.0
c 1.c 297ms 11ms 40.3MB 280ms 0ms zigcc 0.14.0
csharp 1.cs 310ms 3.9ms 78.9MB 290ms 10ms dotnet/aot 9.0.203
csharp 1.cs 355ms 2.4ms 96.3MB 330ms 13ms dotnet 9.0.203
csharp 2.cs 393ms 1.8ms 17.4MB 377ms 0ms dotnet/aot 9.0.203
csharp 2.cs 397ms 1.9ms 35.6MB 380ms 7ms dotnet 9.0.203
csharp 1.cs 550ms 8.4ms 84.0MB 527ms 10ms mono 6.12.0
csharp 2.cs 1862ms 2.9ms 27.5MB 1847ms 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 3.5ms 11.6MB 43ms 0ms gcc 15.1.0
c 1.c 55ms 4.3ms 11.5MB 47ms 0ms clang 14.0.0-1ubuntu1.1
c 1.c 59ms 1.5ms 11.0MB 50ms 0ms zigcc 0.14.0
csharp 1.cs 64ms 3.2ms 24.8MB 50ms 7ms dotnet/aot 9.0.203
csharp 1.cs 100ms 1.2ms 42.3MB 80ms 7ms dotnet 9.0.203
csharp 2.cs 101ms 1.3ms 11.9MB 90ms 0ms dotnet/aot 9.0.203
csharp 2.cs 127ms 1.0ms 30.1MB 103ms 10ms dotnet 9.0.203
csharp 1.cs 146ms 1.7ms 38.2MB 130ms 7ms mono 6.12.0
csharp 2.cs 483ms 5.4ms 23.0MB 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 3-m.c 739ms 2.6ms 2.0MB 2903ms 0ms gcc 15.1.0
c 6-im.c 958ms 3.1ms 2.0MB 3763ms 0ms gcc 15.1.0
c 4-m.c 997ms 13ms 2.0MB 3907ms 0ms gcc 15.1.0
c 6-im.c 1028ms 44ms 3.3MB 4000ms 10ms clang 14.0.0-1ubuntu1.1
c 4-m.c 1124ms 4.6ms 3.3MB 4410ms 3ms clang 14.0.0-1ubuntu1.1
c 5-im.c 1146ms 2.8ms 2.0MB 4513ms 0ms gcc 15.1.0
c 5-im.c 1331ms 1.7ms 3.1MB 5233ms 10ms clang 14.0.0-1ubuntu1.1
c 3-m.c 1851ms 34ms 3.3MB 7240ms 17ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 1857ms 0.8ms 10.5MB 7263ms 10ms dotnet/aot 9.0.203
csharp 3-m.cs 1927ms 7.1ms 30.0MB 7350ms 17ms dotnet 9.0.203
csharp 3-m.cs 4664ms 7.4ms 25.5MB 18030ms 17ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 3-m.c 195ms 2.1ms 2.0MB 740ms 0ms gcc 15.1.0
c 6-im.c 246ms 0.9ms 2.0MB 940ms 0ms gcc 15.1.0
c 4-m.c 260ms 2.9ms 2.0MB 993ms 0ms gcc 15.1.0
c 6-im.c 261ms 6.0ms 3.3MB 993ms 0ms clang 14.0.0-1ubuntu1.1
c 4-m.c 288ms 1.3ms 3.1MB 1107ms 0ms clang 14.0.0-1ubuntu1.1
c 5-im.c 298ms 5.3ms 2.0MB 1147ms 0ms gcc 15.1.0
c 5-im.c 347ms 7.1ms 3.3MB 1323ms 0ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 473ms 1.1ms 10.4MB 1810ms 0ms dotnet/aot 9.0.203
c 3-m.c 486ms 22ms 3.1MB 1843ms 7ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 536ms 6.8ms 29.8MB 1880ms 10ms dotnet 9.0.203
csharp 3-m.cs 1213ms 6.5ms 25.6MB 4547ms 10ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 3-m.c 56ms 0.5ms 2.0MB 200ms 0ms gcc 15.1.0
c 6-im.c 70ms 0.6ms 3.3MB 243ms 0ms clang 14.0.0-1ubuntu1.1
c 4-m.c 72ms 0.5ms 2.0MB 260ms 0ms gcc 15.1.0
c 6-im.c 75ms 11ms 2.0MB 257ms 0ms gcc 15.1.0
c 4-m.c 79ms 3.5ms 3.3MB 280ms 0ms clang 14.0.0-1ubuntu1.1
c 5-im.c 81ms 1.2ms 2.0MB 293ms 0ms gcc 15.1.0
c 5-im.c 91ms 0.1ms 3.1MB 330ms 0ms clang 14.0.0-1ubuntu1.1
c 3-m.c 124ms 3.0ms 3.3MB 450ms 0ms clang 14.0.0-1ubuntu1.1
csharp 3-m.cs 127ms 1.6ms 10.5MB 450ms 0ms dotnet/aot 9.0.203
csharp 3-m.cs 181ms 4.2ms 28.5MB 503ms 10ms dotnet 9.0.203
csharp 3-m.cs 353ms 13ms 25.5MB 1193ms 10ms mono 6.12.0