Codon VS C# benchmarks

Current benchmark data was generated on Sat Nov 16 2024, 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
codon 1.py 4.6ms 0.6ms 7.4MB 0ms 0ms codon 0.17.0
csharp 1.cs 9.1ms 5.6ms 15.6MB 0ms 0ms dotnet/aot 9.0.100
csharp 1.cs 31ms 0.9ms 23.4MB 20ms 0ms mono 6.12.0
csharp 1.cs 35ms 0.6ms 32.3MB 20ms 6ms dotnet 9.0.100

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 9.cs 358ms 1.2ms 34.0MB 347ms 0ms dotnet 9.0.100
csharp 8.cs 371ms 1.4ms 15.8MB 360ms 0ms dotnet/aot 9.0.100
csharp 8.cs 424ms 8.4ms 33.8MB 397ms 10ms dotnet 9.0.100
csharp 8.cs 1247ms 5.7ms 24.3MB 1230ms 7ms mono 6.12.0
codon 1.py 1302ms 15ms 7.9MB 1287ms 0ms codon 0.17.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 8.cs 45ms 1.6ms 15.8MB 30ms 0ms dotnet/aot 9.0.100
csharp 9.cs 93ms 1.7ms 33.7MB 77ms 7ms dotnet 9.0.100
csharp 8.cs 94ms 0.7ms 33.7MB 73ms 10ms dotnet 9.0.100
codon 1.py 136ms 1.4ms 7.9MB 130ms 0ms codon 0.17.0
csharp 8.cs 165ms 1.7ms 24.4MB 150ms 0ms mono 6.12.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 304ms 5.3ms 57.4MB 280ms 7ms dotnet/aot 9.0.100
csharp 1.cs 348ms 16ms 70.3MB 307ms 20ms dotnet 9.0.100
codon 1.py 374ms 2.0ms 46.6MB 357ms 0ms codon 0.17.0
csharp 2.cs 401ms 5.9ms 40.2MB 370ms 10ms dotnet 9.0.100
csharp 2.cs 424ms 1.2ms 21.9MB 403ms 7ms dotnet/aot 9.0.100
csharp 1.cs 542ms 6.6ms 86.0MB 517ms 10ms mono 6.12.0
codon 2.py 856ms 4.9ms 99.8MB 833ms 20ms codon 0.17.0
csharp 2.cs 1867ms 11ms 31.7MB 1850ms 7ms mono 6.12.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 67ms 0.9ms 23.9MB 50ms 0ms dotnet/aot 9.0.100
codon 1.py 73ms 2.7ms 17.3MB 60ms 0ms codon 0.17.0
csharp 1.cs 99ms 1.6ms 43.2MB 73ms 17ms dotnet 9.0.100
csharp 2.cs 109ms 0.4ms 17.8MB 97ms 0ms dotnet/aot 9.0.100
csharp 2.cs 132ms 12ms 34.2MB 100ms 10ms dotnet 9.0.100
csharp 1.cs 145ms 2.5ms 41.9MB 130ms 3ms mono 6.12.0
codon 2.py 197ms 1.6ms 25.6MB 187ms 3ms codon 0.17.0
csharp 2.cs 483ms 1.3ms 23.1MB 470ms 0ms mono 6.12.0