Perl VS C# benchmarks

Current benchmark data was generated on Mon Feb 06 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8272CL 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.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 1487ms 35ms 306.6MB 1350ms 213ms dotnet/aot 7.0.102
csharp 1.cs 1715ms 29ms 426.3MB 1513ms 263ms dotnet 7.0.102
csharp 1.cs 2432ms 49ms 104.6MB 2877ms 213ms mono 6.12.0
perl 1.pl timeout 0.0ms 77.5MB 4947ms 37ms perl 5.36.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 144ms 6.2ms 59.4MB 120ms 17ms dotnet/aot 7.0.102
csharp 1.cs 166ms 4.5ms 46.1MB 137ms 20ms mono 6.12.0
csharp 1.cs 281ms 3.2ms 151.0MB 200ms 53ms dotnet 7.0.102
perl 1.pl 2201ms 12ms 14.1MB 2187ms 0ms perl 5.36.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5-m.cs 316ms 19ms 47.2MB 503ms 90ms dotnet/aot 7.0.102
csharp 5-m.cs 544ms 24ms 61.2MB 910ms 113ms mono 6.12.0
csharp 5-m.cs 569ms 35ms 171.4MB 853ms 150ms dotnet 7.0.102
perl 1.pl 4364ms 36ms 11.0MB 4347ms 3ms perl 5.36.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5.cs 49ms 1.7ms 21.3MB 57ms 13ms dotnet/aot 7.0.102
csharp 5.cs 96ms 10ms 39.2MB 113ms 30ms mono 6.12.0
csharp 5.cs 143ms 4.6ms 114.0MB 117ms 53ms dotnet 7.0.102
perl 1.pl 446ms 3.6ms 6.5MB 430ms 0ms perl 5.36.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
perl 1.pl 3.3ms 0.7ms 3.8MB 0ms 0ms perl 5.36.0
csharp 1.cs 6.8ms 0.7ms 12.1MB 0ms 0ms dotnet/aot 7.0.102
csharp 1.cs 21ms 0.6ms 25.6MB 10ms 0ms mono 6.12.0
csharp 1.cs 79ms 2.2ms 101.4MB 28ms 26ms dotnet 7.0.102

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 9.cs 448ms 2.3ms 102.2MB 397ms 23ms dotnet 7.0.102
csharp 8.cs 580ms 4.8ms 12.2MB 577ms 0ms dotnet/aot 7.0.102
csharp 8.cs 635ms 6.9ms 100.1MB 573ms 27ms dotnet 7.0.102
csharp 8.cs 1299ms 31ms 24.8MB 1287ms 0ms mono 6.12.0
perl 2.pl timeout 0.0ms 6.3MB 4987ms 0ms perl 5.36.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 8.cs 67ms 2.9ms 12.1MB 63ms 0ms dotnet/aot 7.0.102
csharp 9.cs 124ms 3.7ms 101.9MB 80ms 20ms dotnet 7.0.102
csharp 8.cs 139ms 1.0ms 102.0MB 93ms 20ms dotnet 7.0.102
csharp 8.cs 159ms 5.7ms 24.9MB 140ms 3ms mono 6.12.0
perl 2.pl 3096ms 23ms 6.1MB 3080ms 0ms perl 5.36.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 2157ms 59ms 13.7MB 4067ms 7ms dotnet/aot 7.0.102
csharp 3-m.cs 4304ms 209ms 102.9MB 7280ms 33ms dotnet 7.0.102
csharp 3.cs timeout 0.0ms 27.0MB 9767ms 7ms mono 6.12.0
perl 4.pl timeout 0.0ms 10.3MB 9857ms 3ms perl 5.36.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 541ms 2.0ms 12.0MB 1027ms 3ms dotnet/aot 7.0.102
csharp 3-m.cs 1131ms 2.6ms 102.5MB 2010ms 40ms dotnet 7.0.102
csharp 3-m.cs 2696ms 136ms 27.7MB 5060ms 17ms mono 6.12.0
perl 4.pl timeout 0.0ms 9.5MB 9723ms 7ms perl 5.36.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 152ms 2.5ms 12.3MB 267ms 3ms dotnet/aot 7.0.102
csharp 3-m.cs 376ms 2.3ms 104.4MB 563ms 30ms dotnet 7.0.102
csharp 3-m.cs 686ms 9.6ms 27.8MB 1283ms 0ms mono 6.12.0
perl 4-m.pl 4838ms 34ms 9.4MB 9407ms 3ms perl 5.36.0