Julia VS C# benchmarks

Current benchmark data was generated on Thu Sep 22 2022, 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
csharp 1.cs 19ms 0.3ms 23.8MB 10ms 0ms mono 6.12.0
csharp 1.cs 51ms 4.5ms 29.0MB 22ms 4ms dotnet 6.0.401
julia 1.jl 197ms 0.7ms 187.2MB 124ms 86ms julia 1.8.1
julia 1.jl 205ms 48ms 178.5MB 114ms 86ms julia/aot 1.8.1

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 9.cs 405ms 2.4ms 27.3MB 373ms 0ms dotnet 6.0.401
csharp 8.cs 535ms 3.1ms 29.3MB 507ms 0ms dotnet 6.0.401
julia 7.jl 554ms 1.2ms 180.3MB 510ms 120ms julia/aot 1.8.1
julia 7.jl 715ms 1.2ms 245.9MB 680ms 110ms julia 1.8.1
csharp 8.cs 1127ms 33ms 24.8MB 1113ms 0ms mono 6.12.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 9.cs 89ms 5.9ms 27.3MB 60ms 3ms dotnet 6.0.401
csharp 8.cs 103ms 4.1ms 31.3MB 73ms 0ms dotnet 6.0.401
csharp 8.cs 134ms 1.5ms 25.1MB 120ms 0ms mono 6.12.0
julia 7.jl 285ms 60ms 182.1MB 203ms 127ms julia/aot 1.8.1
julia 7.jl 405ms 0.7ms 245.8MB 343ms 143ms julia 1.8.1

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 1.jl 427ms 1.7ms 175.5MB 410ms 97ms julia/aot 1.8.1
julia 1.jl 538ms 1.0ms 220.4MB 510ms 110ms julia 1.8.1
csharp 1.cs 858ms 20ms 88.0MB 813ms 13ms dotnet 6.0.401
csharp 1.cs 910ms 21ms 84.8MB 870ms 20ms mono 6.12.0
csharp 2.cs 996ms 3.9ms 38.1MB 963ms 3ms dotnet 6.0.401
csharp 2.cs 2432ms 1.1ms 34.3MB 2413ms 7ms mono 6.12.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 183ms 0.3ms 40.8MB 163ms 7ms mono 6.12.0
csharp 1.cs 186ms 3.5ms 45.9MB 153ms 7ms dotnet 6.0.401
julia 1.jl 239ms 30ms 169.1MB 187ms 87ms julia/aot 1.8.1
csharp 2.cs 278ms 1.1ms 29.7MB 247ms 0ms dotnet 6.0.401
julia 1.jl 336ms 1.0ms 211.2MB 310ms 107ms julia 1.8.1
csharp 2.cs 605ms 2.9ms 27.9MB 590ms 3ms mono 6.12.0

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 4.jl 1155ms 55ms 258.8MB 1073ms 157ms julia 1.8.1
csharp 1.cs 1354ms 10ms 390.0MB 1237ms 177ms dotnet 6.0.401
csharp 1.cs 2186ms 21ms 103.2MB 2480ms 190ms mono 6.12.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 151ms 0.2ms 44.4MB 127ms 10ms mono 6.12.0
csharp 1.cs 192ms 5.2ms 95.3MB 140ms 27ms dotnet 6.0.401
julia 4.jl 307ms 1.6ms 240.5MB 250ms 133ms julia 1.8.1

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 2-m.jl 1825ms 22ms 230.2MB 3183ms 130ms julia 1.8.1

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 2-m.jl 555ms 1.4ms 230.5MB 700ms 133ms julia 1.8.1

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5-m.cs 413ms 14ms 88.4MB 620ms 113ms dotnet 6.0.401
csharp 5-m.cs 505ms 24ms 58.8MB 850ms 97ms mono 6.12.0
julia 7-m.jl 636ms 1.4ms 299.2MB 890ms 133ms julia 1.8.1

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5.cs 93ms 9.3ms 37.3MB 120ms 17ms mono 6.12.0
csharp 5.cs 112ms 18ms 41.4MB 97ms 27ms dotnet 6.0.401
julia 7.jl 460ms 1.4ms 228.1MB 557ms 113ms julia 1.8.1

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 8.jl 1162ms 1.6ms 318.3MB 1493ms 167ms julia 1.8.1
csharp 6.cs 1202ms 73ms 75.3MB 1703ms 40ms dotnet 6.0.401
csharp 6-m.cs 1582ms 59ms 72.3MB 2573ms 23ms mono 6.12.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 6.cs 238ms 5.4ms 63.9MB 257ms 17ms dotnet 6.0.401
csharp 6.cs 246ms 11ms 56.4MB 313ms 20ms mono 6.12.0
julia 8.jl 817ms 3.9ms 303.8MB 927ms 123ms julia 1.8.1

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 3.jl 793ms 3.9ms 196.0MB 767ms 100ms julia 1.8.1
julia 1.jl 1425ms 3.7ms 276.0MB 1337ms 170ms julia 1.8.1
csharp 1.cs timeout 0.0ms 0.0MB 0ms 0ms dotnet 6.0.401

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 3.jl 349ms 1.4ms 193.8MB 310ms 120ms julia 1.8.1
julia 1.jl 801ms 26ms 277.4MB 707ms 157ms julia 1.8.1
csharp 1.cs 1271ms 0.5ms 94.7MB 1260ms 30ms dotnet 6.0.401

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 2-m.jl 1373ms 2.1ms 205.1MB 2407ms 117ms julia 1.8.1
julia 3-m.jl 2069ms 3.9ms 220.3MB 3703ms 130ms julia 1.8.1
csharp 3-m.cs 3104ms 414ms 30.4MB 5183ms 13ms dotnet 6.0.401
csharp 3.cs timeout 0.0ms 0.0MB 0ms 0ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 2-m.jl 582ms 1.2ms 206.8MB 873ms 103ms julia 1.8.1
csharp 3-m.cs 716ms 4.2ms 31.4MB 1293ms 13ms dotnet 6.0.401
julia 3-m.jl 795ms 4.6ms 219.1MB 1213ms 120ms julia 1.8.1
csharp 3-m.cs 3178ms 135ms 29.2MB 6037ms 3ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 231ms 1.3ms 30.4MB 353ms 7ms dotnet 6.0.401
julia 2-m.jl 385ms 1.0ms 204.8MB 477ms 107ms julia 1.8.1
julia 3.jl 476ms 2.8ms 220.2MB 580ms 130ms julia 1.8.1
csharp 3-m.cs 802ms 1.9ms 29.5MB 1527ms 3ms mono 6.12.0