Results for 38 of 40 languages from this run on actest1.

Unavailable in this run: Hack, Lisp. Follow the run link for failure details.

Lua VS Ruby benchmarks

Current benchmark data was generated on Sun Sep 27 2026, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][4 cores] Intel(R) Core(TM) i7-3687U CPU @ 2.10GHz (Model 58)

* -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
lua 1.lua 6633ms 183ms 291.4MB 6527ms 87ms luajit 2.1.1703358377
ruby 1.rb 11360ms 112ms 87.8MB 11283ms 57ms ruby 3.2.3
ruby 1.rb 11813ms 6.3ms 87.9MB 11740ms 57ms ruby/yjit 3.2.3
lua 1.lua 16420ms 378ms 152.3MB 16370ms 30ms lua 5.4.6

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 1.lua 578ms 29ms 24.9MB 553ms 3ms luajit 2.1.1703358377
ruby 1.rb 1118ms 12ms 30.2MB 1087ms 17ms ruby 3.2.3
ruby 1.rb 1172ms 15ms 30.3MB 1137ms 20ms ruby/yjit 3.2.3
lua 1.lua 1185ms 23ms 17.5MB 1173ms 0ms lua 5.4.6

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 1.lua 1.6ms 0.3ms 2.4MB 0ms 0ms luajit 2.1.1703358377
lua 1.lua 2.2ms 0.4ms 1.8MB 0ms 0ms lua 5.4.6
ruby 1.rb 85ms 4.7ms 22.6MB 64ms 12ms ruby/yjit 3.2.3
ruby 1.rb 95ms 7.0ms 22.5MB 62ms 18ms ruby 3.2.3

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 1.lua 15068ms 464ms 183.4MB 14980ms 70ms luajit 2.1.1703358377
lua 1.lua 18968ms 144ms 107.9MB 18917ms 33ms lua 5.4.6
ruby 1.rb 27746ms 105ms 103.9MB 27650ms 80ms ruby 3.2.3
ruby 1.rb 27918ms 153ms 104.0MB 27813ms 87ms ruby/yjit 3.2.3

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 1.lua 2066ms 2.3ms 36.3MB 2040ms 7ms luajit 2.1.1703358377
lua 1.lua 3347ms 133ms 28.8MB 3327ms 3ms lua 5.4.6
ruby 1.rb 6147ms 56ms 44.0MB 6087ms 47ms ruby/yjit 3.2.3
ruby 1.rb 6156ms 36ms 44.0MB 6097ms 43ms ruby 3.2.3

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 4.lua 1312ms 8.1ms 1.6MB 1303ms 0ms luajit 2.1.1703358377
lua 4.lua 19839ms 364ms 1.8MB 19823ms 0ms lua 5.4.6
ruby 2.rb 46837ms 1570ms 22.6MB 46803ms 13ms ruby 3.2.3
ruby 2.rb 47090ms 429ms 22.5MB 47053ms 13ms ruby/yjit 3.2.3

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 4.lua 139ms 4.9ms 1.5MB 127ms 0ms luajit 2.1.1703358377
lua 4.lua 1941ms 5.9ms 1.8MB 1927ms 0ms lua 5.4.6
ruby 2.rb 4685ms 47ms 22.6MB 4660ms 7ms ruby/yjit 3.2.3
ruby 2.rb 4697ms 102ms 22.5MB 4673ms 10ms ruby 3.2.3

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 1.lua 11058ms 4.0ms 2.6MB 11047ms 0ms luajit 2.1.1703358377
lua 1.lua 167091ms 2385ms 2.9MB 167067ms 3ms lua 5.4.6
ruby 4.rb timeout (300s) — — — — ruby 3.2.3
ruby 4.rb timeout (300s) — — — — ruby/yjit 3.2.3

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 1.lua 2774ms 9.6ms 2.7MB 2760ms 0ms luajit 2.1.1703358377
lua 1.lua 41466ms 392ms 2.6MB 41447ms 0ms lua 5.4.6
ruby 4.rb 108151ms 898ms 24.1MB 108120ms 10ms ruby 3.2.3
ruby 4.rb timeout (120s) — — — — ruby/yjit 3.2.3

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
lua 1.lua 698ms 2.1ms 1.5MB 687ms 0ms luajit 2.1.1703358377
lua 1.lua 10267ms 17ms 1.7MB 10257ms 0ms lua 5.4.6
ruby 4.rb 27651ms 1140ms 23.4MB 27623ms 10ms ruby/yjit 3.2.3
ruby 4.rb 28446ms 2206ms 23.3MB 28410ms 13ms ruby 3.2.3