Lua 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.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
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
lua 1.lua timeout 0.0ms 119.5MB 4903ms 70ms lua 5.4.4
lua 1.lua timeout 0.0ms 174.6MB 4897ms 83ms luajit 2.1.0-beta3

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
lua 1.lua 584ms 53ms 24.6MB 553ms 10ms luajit 2.1.0-beta3
lua 1.lua 1408ms 8.5ms 17.4MB 1387ms 3ms lua 5.4.4

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 1.lua 2.4ms 0.8ms 2.2MB 0ms 0ms luajit 2.1.0-beta3
lua 1.lua 2.4ms 1.0ms 1.4MB 0ms 0ms lua 5.4.4
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

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 1053ms 5.7ms 382.4MB 917ms 193ms dotnet/aot 7.0.102
csharp 1.cs 1147ms 32ms 303.2MB 1003ms 183ms dotnet/aot 7.0.102
csharp 2.cs 1283ms 16ms 497.2MB 1037ms 270ms dotnet 7.0.102
csharp 1.cs 1342ms 22ms 501.9MB 1127ms 263ms dotnet 7.0.102
csharp 1.cs 2174ms 53ms 142.9MB 2760ms 160ms mono 6.12.0
lua 1.lua timeout 0.0ms 159.1MB 4913ms 67ms lua 5.4.4
lua 1.lua timeout 0.0ms 180.9MB 4870ms 107ms luajit 2.1.0-beta3

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 249ms 14ms 141.6MB 183ms 60ms dotnet/aot 7.0.102
csharp 1.cs 308ms 9.8ms 190.9MB 203ms 93ms dotnet/aot 7.0.102
csharp 1.cs 399ms 3.3ms 72.0MB 393ms 33ms mono 6.12.0
csharp 1.cs 444ms 10ms 249.0MB 327ms 103ms dotnet 7.0.102
csharp 2.cs 463ms 4.4ms 208.9MB 367ms 77ms dotnet 7.0.102
lua 1.lua 2162ms 57ms 38.5MB 2130ms 13ms luajit 2.1.0-beta3
lua 1.lua 3623ms 55ms 41.6MB 3593ms 13ms lua 5.4.4

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
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
lua 4.lua 1337ms 28ms 1.5MB 1320ms 0ms luajit 2.1.0-beta3
csharp 8.cs 1535ms 1.6ms 25.0MB 1513ms 3ms mono 6.12.0
lua 4.lua timeout 0.0ms 1.5MB 4990ms 0ms lua 5.4.4

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
lua 4.lua 138ms 1.4ms 1.5MB 123ms 0ms luajit 2.1.0-beta3
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
lua 4.lua 1886ms 102ms 1.4MB 1873ms 0ms lua 5.4.4

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 2549ms 81ms 13.6MB 4870ms 13ms dotnet/aot 7.0.102
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
lua 1.lua timeout 0.0ms 2.2MB 4977ms 3ms lua 5.4.4
lua 1.lua timeout 0.0ms 2.5MB 4987ms 0ms luajit 2.1.0-beta3

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
csharp 3-m.cs 1335ms 16ms 104.6MB 2427ms 30ms dotnet 7.0.102
lua 1.lua 1702ms 29ms 2.5MB 1687ms 0ms luajit 2.1.0-beta3
csharp 3-m.cs 3239ms 166ms 29.5MB 6070ms 7ms mono 6.12.0
lua 1.lua timeout 0.0ms 2.3MB 4987ms 0ms lua 5.4.4

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
lua 1.lua 434ms 2.7ms 1.5MB 423ms 0ms luajit 2.1.0-beta3
csharp 3-m.cs 440ms 7.6ms 104.3MB 670ms 33ms dotnet 7.0.102
csharp 3-m.cs 820ms 6.1ms 29.6MB 1540ms 0ms mono 6.12.0
lua 1.lua timeout 0.0ms 1.5MB 4990ms 0ms lua 5.4.4