C VS C# benchmarks

Current benchmark data was generated on Sun Jan 29 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

* -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.7ms 0.7ms 1.4MB 0ms 0ms clang 14.0.0
c 1.c 1.9ms 0.9ms 1.3MB 0ms 0ms gcc 12.2.0
c 1.c 2.4ms 1.1ms 1.0MB 0ms 0ms zigcc 0.11.0-dev.1480+f68d3c63d
csharp 1.cs 5.7ms 0.6ms 10.1MB 0ms 0ms dotnet/aot 7.0.102
csharp 1.cs 19ms 0.7ms 23.6MB 10ms 0ms mono 6.12.0
csharp 1.cs 75ms 3.4ms 101.5MB 20ms 20ms dotnet 7.0.102

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1-m.c 249ms 1.4ms 23.5MB 413ms 7ms gcc 12.2.0
c 1-m.c 489ms 15ms 20.4MB 847ms 20ms clang 14.0.0
csharp 6-m.cs 949ms 4.6ms 55.7MB 1473ms 27ms dotnet/aot 7.0.102
csharp 6-m.cs 1221ms 45ms 144.2MB 1960ms 47ms dotnet 7.0.102
csharp 6-m.cs 1658ms 166ms 71.3MB 2560ms 20ms mono 6.12.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1.c 36ms 1.1ms 12.8MB 47ms 0ms gcc 12.2.0
c 1.c 59ms 2.8ms 9.7MB 87ms 0ms clang 14.0.0
csharp 6.cs 150ms 4.7ms 41.9MB 187ms 10ms dotnet/aot 7.0.102
csharp 6.cs 237ms 12ms 53.0MB 303ms 23ms mono 6.12.0
csharp 6.cs 279ms 4.6ms 134.3MB 287ms 47ms dotnet 7.0.102

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 8-i.c 318ms 8.8ms 1.3MB 303ms 0ms zigcc 0.11.0-dev.1480+f68d3c63d
c 5.c 323ms 1.9ms 1.3MB 310ms 0ms gcc 12.2.0
c 5.c 329ms 1.3ms 1.4MB 320ms 0ms clang 14.0.0
c 5.c 330ms 1.7ms 1.0MB 320ms 0ms zigcc 0.11.0-dev.1480+f68d3c63d
c 2.c 343ms 2.5ms 1.2MB 330ms 0ms zigcc 0.11.0-dev.1480+f68d3c63d
c 2.c 345ms 3.1ms 1.4MB 330ms 0ms clang 14.0.0
c 8-i.c 365ms 0.3ms 1.3MB 350ms 0ms gcc 12.2.0
c 8-i.c 370ms 3.6ms 1.4MB 357ms 0ms clang 14.0.0
csharp 9.cs 431ms 4.2ms 102.5MB 383ms 17ms dotnet 7.0.102
csharp 8.cs 495ms 0.3ms 12.0MB 493ms 0ms dotnet/aot 7.0.102
csharp 8.cs 554ms 3.4ms 97.9MB 503ms 27ms dotnet 7.0.102
c 2.c 623ms 1.4ms 1.3MB 613ms 0ms gcc 12.2.0
csharp 8.cs 1136ms 44ms 24.3MB 1120ms 3ms mono 6.12.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 5.c 34ms 0.1ms 1.3MB 20ms 0ms gcc 12.2.0
c 8-i.c 35ms 1.3ms 1.2MB 20ms 0ms zigcc 0.11.0-dev.1480+f68d3c63d
c 2.c 36ms 0.5ms 1.2MB 27ms 0ms zigcc 0.11.0-dev.1480+f68d3c63d
c 2.c 36ms 0.4ms 1.4MB 27ms 0ms clang 14.0.0
c 5.c 37ms 1.2ms 1.0MB 27ms 0ms zigcc 0.11.0-dev.1480+f68d3c63d
c 5.c 37ms 3.2ms 1.4MB 27ms 0ms clang 14.0.0
c 8-i.c 39ms 0.5ms 1.4MB 30ms 0ms clang 14.0.0
c 8-i.c 39ms 0.9ms 1.3MB 30ms 0ms gcc 12.2.0
csharp 8.cs 58ms 1.4ms 8.0MB 57ms 0ms dotnet/aot 7.0.102
c 2.c 65ms 0.3ms 1.3MB 57ms 0ms gcc 12.2.0
csharp 9.cs 122ms 3.6ms 100.5MB 73ms 17ms dotnet 7.0.102
csharp 8.cs 129ms 2.1ms 100.2MB 83ms 17ms dotnet 7.0.102
csharp 8.cs 133ms 1.4ms 25.1MB 117ms 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 709ms 14ms 41.1MB 683ms 10ms gcc 12.2.0
c 1.c 726ms 18ms 40.9MB 697ms 10ms clang 14.0.0
c 1.c 760ms 17ms 40.3MB 727ms 13ms zigcc 0.11.0-dev.1480+f68d3c63d
csharp 2.cs 772ms 9.8ms 21.9MB 760ms 0ms dotnet/aot 7.0.102
csharp 1.cs 850ms 17ms 71.9MB 827ms 17ms dotnet/aot 7.0.102
csharp 1.cs 868ms 21ms 88.4MB 840ms 13ms mono 6.12.0
csharp 2.cs 954ms 1.4ms 109.4MB 907ms 17ms dotnet 7.0.102
csharp 1.cs 1390ms 21ms 157.1MB 1327ms 33ms dotnet 7.0.102
csharp 2.cs 2463ms 28ms 32.3MB 2450ms 0ms mono 6.12.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 1.c 120ms 2.6ms 11.6MB 110ms 0ms clang 14.0.0
c 1.c 123ms 0.9ms 11.8MB 113ms 0ms gcc 12.2.0
c 1.c 130ms 2.0ms 11.0MB 113ms 0ms zigcc 0.11.0-dev.1480+f68d3c63d
csharp 1.cs 138ms 5.1ms 29.9MB 137ms 0ms dotnet/aot 7.0.102
csharp 1.cs 183ms 1.5ms 42.5MB 160ms 7ms mono 6.12.0
csharp 2.cs 192ms 2.1ms 15.1MB 187ms 0ms dotnet/aot 7.0.102
csharp 2.cs 289ms 4.7ms 104.7MB 243ms 17ms dotnet 7.0.102
csharp 1.cs 348ms 2.4ms 114.8MB 303ms 17ms dotnet 7.0.102
csharp 2.cs 605ms 2.9ms 25.6MB 590ms 0ms mono 6.12.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 4-m.c 1394ms 3.2ms 1.3MB 2727ms 3ms gcc 12.2.0
c 6-im.c 1617ms 1.7ms 1.3MB 3173ms 0ms gcc 12.2.0
c 6-im.c 1698ms 19ms 3.3MB 3317ms 0ms clang 14.0.0
c 4-m.c 1717ms 3.2ms 3.2MB 3377ms 0ms clang 14.0.0
c 5-im.c 1856ms 10ms 1.3MB 3637ms 0ms gcc 12.2.0
c 5-im.c 2190ms 17ms 3.3MB 4300ms 0ms clang 14.0.0
c 3-m.c 2204ms 2.6ms 3.2MB 4343ms 0ms clang 14.0.0
c 3-m.c 2205ms 9.5ms 1.3MB 4337ms 0ms gcc 12.2.0
csharp 3-m.cs 2567ms 42ms 13.8MB 4943ms 3ms dotnet/aot 7.0.102
csharp 3-m.cs 4480ms 103ms 103.0MB 8387ms 27ms dotnet 7.0.102
csharp 3.cs timeout 0.0ms 31.1MB 9770ms 7ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 4-m.c 360ms 2.4ms 1.3MB 683ms 0ms gcc 12.2.0
c 6-im.c 415ms 1.3ms 1.3MB 800ms 0ms gcc 12.2.0
c 6-im.c 430ms 2.6ms 3.1MB 820ms 0ms clang 14.0.0
c 4-m.c 438ms 5.2ms 3.1MB 840ms 0ms clang 14.0.0
c 5-im.c 476ms 1.3ms 1.3MB 910ms 0ms gcc 12.2.0
c 5-im.c 555ms 4.2ms 3.3MB 1073ms 0ms clang 14.0.0
c 3-m.c 558ms 1.9ms 1.3MB 1083ms 0ms gcc 12.2.0
c 3-m.c 563ms 1.7ms 3.1MB 1087ms 0ms clang 14.0.0
csharp 3-m.cs 650ms 2.9ms 12.1MB 1230ms 10ms dotnet/aot 7.0.102
csharp 3.cs 1434ms 228ms 104.6MB 2077ms 27ms dotnet 7.0.102
csharp 3-m.cs 3100ms 4.6ms 29.8MB 6033ms 10ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
c 4-m.c 98ms 1.2ms 1.3MB 170ms 0ms gcc 12.2.0
c 6-im.c 114ms 2.1ms 1.3MB 200ms 0ms gcc 12.2.0
c 6-im.c 116ms 1.6ms 3.1MB 207ms 0ms clang 14.0.0
c 4-m.c 118ms 1.0ms 3.3MB 210ms 0ms clang 14.0.0
c 5-im.c 127ms 1.0ms 1.3MB 230ms 0ms gcc 12.2.0
c 5-im.c 151ms 5.7ms 3.2MB 270ms 0ms clang 14.0.0
c 3-m.c 151ms 1.7ms 3.1MB 277ms 0ms clang 14.0.0
c 3-m.c 153ms 5.1ms 1.3MB 280ms 0ms gcc 12.2.0
csharp 3-m.cs 182ms 1.4ms 12.4MB 317ms 3ms dotnet/aot 7.0.102
csharp 3-m.cs 403ms 1.5ms 104.2MB 633ms 27ms dotnet 7.0.102
csharp 3-m.cs 887ms 148ms 29.4MB 1523ms 3ms mono 6.12.0