Julia VS C# benchmarks

Current benchmark data was generated on Wed Feb 08 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz (Model 85)

* -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 8.0ms 0.9ms 10.1MB 0ms 0ms dotnet/aot 7.0.102
csharp 1.cs 24ms 1.3ms 23.6MB 10ms 2ms mono 6.12.0
csharp 1.cs 91ms 4.1ms 101.5MB 30ms 32ms dotnet 7.0.102
julia 1.jl 236ms 5.1ms 167.8MB 138ms 110ms julia/aot 1.8.5
julia 1.jl 250ms 5.6ms 171.5MB 152ms 114ms julia 1.8.5

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 9.cs 531ms 2.8ms 98.0MB 463ms 33ms dotnet 7.0.102
julia 7.jl 646ms 1.6ms 168.0MB 587ms 163ms julia/aot 1.8.5
csharp 8.cs 686ms 14ms 12.3MB 680ms 0ms dotnet/aot 7.0.102
csharp 8.cs 742ms 6.0ms 99.9MB 673ms 37ms dotnet 7.0.102
julia 7.jl 833ms 13ms 225.8MB 763ms 180ms julia 1.8.5
csharp 8.cs 1535ms 1.6ms 25.0MB 1513ms 3ms mono 6.12.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 8.cs 78ms 3.2ms 10.0MB 73ms 0ms dotnet/aot 7.0.102
csharp 9.cs 144ms 2.8ms 98.4MB 83ms 33ms dotnet 7.0.102
csharp 8.cs 172ms 6.9ms 102.3MB 117ms 27ms dotnet 7.0.102
csharp 8.cs 181ms 0.8ms 25.0MB 157ms 3ms mono 6.12.0
julia 7.jl 317ms 22ms 167.0MB 240ms 147ms julia/aot 1.8.5
julia 7.jl 526ms 2.9ms 227.5MB 423ms 200ms julia 1.8.5

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 1.jl 519ms 11ms 156.1MB 467ms 163ms julia/aot 1.8.5
julia 1.jl 636ms 7.2ms 203.7MB 587ms 150ms julia 1.8.5
csharp 2.cs 758ms 4.2ms 17.9MB 753ms 0ms dotnet/aot 7.0.102
csharp 2.cs 923ms 3.8ms 109.3MB 860ms 37ms dotnet 7.0.102
csharp 1.cs 1090ms 39ms 71.9MB 1063ms 20ms dotnet/aot 7.0.102
csharp 1.cs 1355ms 47ms 82.5MB 1317ms 23ms mono 6.12.0
csharp 1.cs 1931ms 106ms 158.9MB 1843ms 53ms dotnet 7.0.102
csharp 2.cs 3286ms 22ms 31.9MB 3267ms 7ms mono 6.12.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 174ms 11ms 30.5MB 153ms 13ms dotnet/aot 7.0.102
csharp 2.cs 189ms 9.5ms 11.4MB 173ms 0ms dotnet/aot 7.0.102
csharp 1.cs 225ms 4.3ms 40.6MB 200ms 7ms mono 6.12.0
csharp 2.cs 290ms 2.2ms 104.8MB 233ms 23ms dotnet 7.0.102
julia 1.jl 301ms 26ms 149.8MB 190ms 150ms julia/aot 1.8.5
julia 1.jl 405ms 6.3ms 197.2MB 327ms 180ms julia 1.8.5
csharp 1.cs 405ms 14ms 114.9MB 337ms 33ms dotnet 7.0.102
csharp 2.cs 805ms 2.3ms 26.1MB 787ms 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 1444ms 14ms 241.6MB 1307ms 233ms julia 1.8.5
csharp 1.cs 1718ms 34ms 303.4MB 1583ms 217ms dotnet/aot 7.0.102
csharp 1.cs 1977ms 81ms 433.3MB 1717ms 333ms dotnet 7.0.102
csharp 1.cs 2754ms 23ms 106.2MB 3340ms 227ms mono 6.12.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 173ms 7.2ms 60.2MB 137ms 30ms dotnet/aot 7.0.102
csharp 1.cs 190ms 1.8ms 46.1MB 167ms 13ms mono 6.12.0
csharp 1.cs 345ms 16ms 151.8MB 240ms 73ms dotnet 7.0.102
julia 4.jl 392ms 4.3ms 225.4MB 323ms 170ms julia 1.8.5

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 2-m.jl 1982ms 6.8ms 210.4MB 3410ms 180ms julia 1.8.5

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 2-m.jl 674ms 29ms 211.1MB 830ms 190ms julia 1.8.5

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5-m.cs 372ms 28ms 67.2MB 583ms 107ms dotnet/aot 7.0.102
csharp 5-m.cs 590ms 61ms 156.5MB 887ms 137ms dotnet 7.0.102
csharp 5-m.cs 645ms 15ms 60.3MB 1077ms 137ms mono 6.12.0
julia 7-m.jl 797ms 8.6ms 298.9MB 1077ms 200ms julia 1.8.5

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5.cs 73ms 29ms 24.4MB 77ms 27ms dotnet/aot 7.0.102
csharp 5.cs 107ms 3.8ms 34.1MB 137ms 23ms mono 6.12.0
csharp 5.cs 163ms 6.8ms 111.5MB 130ms 70ms dotnet 7.0.102
julia 7.jl 570ms 8.1ms 227.5MB 683ms 167ms julia 1.8.5

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 6.cs 1218ms 5.5ms 53.5MB 1800ms 23ms dotnet/aot 7.0.102
julia 8.jl 1412ms 8.8ms 274.1MB 1860ms 193ms julia 1.8.5
csharp 6-m.cs 1586ms 11ms 144.3MB 2663ms 63ms dotnet 7.0.102
csharp 6-m.cs 2173ms 107ms 71.3MB 3497ms 33ms mono 6.12.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 6.cs 188ms 6.5ms 42.3MB 210ms 30ms dotnet/aot 7.0.102
csharp 6.cs 326ms 31ms 53.5MB 440ms 17ms mono 6.12.0
csharp 6.cs 355ms 8.1ms 132.9MB 387ms 67ms dotnet 7.0.102
julia 8.jl 950ms 17ms 262.9MB 1040ms 200ms julia 1.8.5

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 3.jl 856ms 22ms 178.0MB 807ms 157ms julia 1.8.5
julia 1.jl 1650ms 5.6ms 261.1MB 1530ms 227ms julia 1.8.5
csharp 1.cs timeout 0.0ms 155.9MB 4923ms 147ms dotnet 7.0.102
csharp 1.cs timeout 0.0ms 57.3MB 4960ms 33ms dotnet/aot 7.0.102

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 3.jl 418ms 15ms 175.4MB 353ms 170ms julia 1.8.5
julia 1.jl 1002ms 43ms 261.2MB 880ms 207ms julia 1.8.5
csharp 1.cs 1333ms 7.2ms 56.5MB 1290ms 33ms dotnet/aot 7.0.102
csharp 1.cs 1458ms 0.2ms 156.3MB 1413ms 90ms dotnet 7.0.102

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
julia 2-m.jl 1489ms 28ms 193.8MB 2493ms 173ms julia 1.8.5
csharp 3-m.cs 2549ms 81ms 13.6MB 4870ms 13ms dotnet/aot 7.0.102
julia 3-m.jl 2607ms 78ms 208.5MB 4643ms 157ms julia 1.8.5
csharp 3-m.cs 4653ms 9.5ms 106.8MB 8870ms 43ms dotnet 7.0.102
csharp 3.cs timeout 0.0ms 27.1MB 9733ms 10ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 649ms 1.7ms 12.2MB 1230ms 0ms dotnet/aot 7.0.102
julia 2-m.jl 682ms 15ms 194.1MB 940ms 170ms julia 1.8.5
julia 3-m.jl 1012ms 20ms 208.1MB 1503ms 173ms julia 1.8.5
csharp 3-m.cs 1335ms 16ms 104.6MB 2427ms 30ms dotnet 7.0.102
csharp 3-m.cs 3239ms 166ms 29.5MB 6070ms 7ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 186ms 7.1ms 12.2MB 320ms 3ms dotnet/aot 7.0.102
csharp 3-m.cs 440ms 7.6ms 104.3MB 670ms 33ms dotnet 7.0.102
julia 2.jl 473ms 2.6ms 195.0MB 543ms 163ms julia 1.8.5
julia 3.jl 600ms 8.7ms 208.4MB 713ms 183ms julia 1.8.5
csharp 3-m.cs 820ms 6.1ms 29.6MB 1540ms 0ms mono 6.12.0