Pony VS C# benchmarks

Current benchmark data was generated on Fri May 20 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.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 1400ms 22ms 390.6MB 1260ms 180ms dotnet 6.0.300
pony 1.pony 1898ms 22ms 2224.4MB 1343ms 597ms ponyc 0.50.0
csharp 1.cs 2295ms 25ms 103.2MB 2610ms 193ms mono 6.12.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
pony 1.pony 150ms 1.4ms 214.4MB 123ms 37ms ponyc 0.50.0
csharp 1.cs 160ms 4.1ms 44.7MB 143ms 3ms mono 6.12.0
csharp 1.cs 194ms 16ms 93.0MB 140ms 20ms dotnet 6.0.300

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
pony 1.pony 4.5ms 0.4ms 8.4MB 0ms 0ms ponyc 0.50.0
csharp 1.cs 19ms 0.4ms 24.3MB 10ms 0ms mono 6.12.0
csharp 1.cs 50ms 4.7ms 32.9MB 24ms 2ms dotnet 6.0.300

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 187ms 1.3ms 25.5MB 170ms 0ms mono 6.12.0
csharp 2.cs 208ms 4.7ms 28.0MB 170ms 0ms dotnet 6.0.300
csharp 1.cs 1670ms 5.3ms 91.7MB 1620ms 37ms dotnet 6.0.300
csharp 1.cs 3070ms 3.0ms 49.8MB 3023ms 37ms mono 6.12.0
pony 1.pony timeout 0.0ms 0.0MB 0ms 0ms ponyc 0.50.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 457ms 3.5ms 28.1MB 427ms 3ms dotnet 6.0.300
csharp 2.cs 511ms 13ms 24.4MB 497ms 0ms mono 6.12.0
csharp 1.cs 4722ms 92ms 92.7MB 4683ms 27ms dotnet 6.0.300
csharp 1.cs timeout 0.0ms 0.0MB 0ms 0ms mono 6.12.0
pony 1.pony timeout 0.0ms 0.0MB 0ms 0ms ponyc 0.50.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 107ms 1.5ms 27.3MB 93ms 0ms mono 6.12.0
csharp 2.cs 130ms 4.5ms 27.7MB 103ms 0ms dotnet 6.0.300
pony 1.pony 2666ms 0.5ms 36.7MB 2783ms 13ms ponyc 0.50.0
csharp 1.cs 3190ms 8.7ms 33.8MB 3163ms 3ms mono 6.12.0
csharp 1.cs 3201ms 7.3ms 73.2MB 3160ms 20ms dotnet 6.0.300

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
pony 1.pony 427ms 1.0ms 6.6MB 423ms 3ms ponyc 0.50.0
csharp 9.cs 438ms 9.0ms 29.3MB 410ms 0ms dotnet 6.0.300
csharp 8.cs 537ms 3.7ms 29.1MB 503ms 3ms dotnet 6.0.300
csharp 8.cs 1110ms 1.7ms 27.0MB 1097ms 0ms mono 6.12.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
pony 1.pony 48ms 3.2ms 2.5MB 40ms 0ms ponyc 0.50.0
csharp 9.cs 95ms 4.6ms 29.2MB 67ms 0ms dotnet 6.0.300
csharp 8.cs 101ms 4.9ms 31.2MB 77ms 0ms dotnet 6.0.300
csharp 8.cs 135ms 4.1ms 27.0MB 123ms 0ms mono 6.12.0