Lua VS Nim benchmarks

Current benchmark data was generated on Wed May 25 2022, 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
nim 2.nim 3281ms 50ms 35.2MB 3253ms 13ms nim 1.6.6
nim 2.nim 3344ms 37ms 34.2MB 3320ms 3ms nim/clang 1.6.6
lua 1.lua timeout 0.0ms 0.0MB 0ms 0ms lua 5.4.4
lua 1.lua timeout 0.0ms 0.0MB 0ms 0ms luajit 2.1.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 288ms 21ms 5.7MB 273ms 0ms nim/clang 1.6.6
nim 2.nim 304ms 1.5ms 5.5MB 290ms 0ms nim 1.6.6
lua 1.lua 542ms 22ms 25.2MB 523ms 7ms luajit 2.1.0
lua 1.lua 1204ms 6.2ms 17.3MB 1183ms 3ms lua 5.4.4

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 1.5ms 0.3ms 2.0MB 0ms 0ms nim/clang 1.6.6
nim 1.nim 1.7ms 0.6ms 0.7MB 0ms 0ms nim 1.6.6
lua 1.lua 2.1ms 0.7ms 2.2MB 0ms 0ms luajit 2.1.0
lua 1.lua 3.1ms 1.1ms 1.1MB 0ms 0ms lua 5.4.4

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 1385ms 10ms 35.0MB 1363ms 3ms nim 1.6.6
nim 1.nim 1590ms 8.8ms 35.1MB 1563ms 7ms nim/clang 1.6.6
lua 1.lua timeout 0.0ms 0.0MB 0ms 0ms lua 5.4.4
lua 1.lua timeout 0.0ms 0.0MB 0ms 0ms luajit 2.1.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 322ms 21ms 9.3MB 307ms 0ms nim 1.6.6
nim 1.nim 338ms 0.6ms 10.0MB 323ms 0ms nim/clang 1.6.6
lua 1.lua 2331ms 46ms 35.3MB 2293ms 17ms luajit 2.1.0
lua 1.lua 3310ms 64ms 41.5MB 3277ms 20ms lua 5.4.4

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 418ms 30ms 0.9MB 403ms 0ms nim 1.6.6
nim 2.nim 437ms 11ms 0.9MB 427ms 0ms nim/clang 1.6.6
lua 4.lua 1120ms 8.4ms 1.1MB 1107ms 0ms luajit 2.1.0
lua 4.lua timeout 0.0ms 0.0MB 0ms 0ms lua 5.4.4

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 43ms 4.2ms 1.0MB 33ms 0ms nim 1.6.6
nim 2.nim 46ms 0.8ms 1.0MB 37ms 0ms nim/clang 1.6.6
lua 4.lua 116ms 1.0ms 1.0MB 100ms 0ms luajit 2.1.0
lua 4.lua 1449ms 38ms 1.1MB 1433ms 0ms lua 5.4.4

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 3300ms 230ms 1.9MB 3287ms 0ms nim 1.6.6
nim 1.nim 3433ms 1.4ms 1.8MB 3420ms 0ms nim/clang 1.6.6
lua 1.lua timeout 0.0ms 0.0MB 0ms 0ms lua 5.4.4
lua 1.lua timeout 0.0ms 0.0MB 0ms 0ms luajit 2.1.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 861ms 0.9ms 0.9MB 850ms 0ms nim/clang 1.6.6
nim 1.nim 862ms 1.5ms 0.9MB 850ms 0ms nim 1.6.6
lua 1.lua 1357ms 86ms 2.4MB 1347ms 0ms luajit 2.1.0
lua 1.lua timeout 0.0ms 0.0MB 0ms 0ms lua 5.4.4

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 210ms 15ms 1.0MB 200ms 0ms nim/clang 1.6.6
nim 1.nim 218ms 0.5ms 0.9MB 207ms 0ms nim 1.6.6
lua 1.lua 325ms 27ms 2.4MB 313ms 0ms luajit 2.1.0
lua 1.lua timeout 0.0ms 0.0MB 0ms 0ms lua 5.4.4

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 1.lua 579ms 3.1ms 5.0MB 567ms 0ms luajit 2.1.0
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim/clang 1.6.6

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 1.lua 38ms 2.0ms 3.0MB 27ms 0ms luajit 2.1.0
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim/clang 1.6.6