I've released lua-benchmarker that is a benchmarker for lua code. This benchmarker is for taking microbenchmark.
This library is available on luarocks. You can install this by luarocks install benchmarker.
For example, write a benchmark code like following:
local benchmarker = require 'benchmarker' benchmarker.new({ ["insert append"] = function () local arr = {} for i=1,1000 do table.insert(arr, i) end end, ["index append"] = function () local arr = {} for i=1,1000 do arr[i] = i end end, }):warmup(10):run_within_time(1):timethese():cmpthese()
then execute this code, the result is the following:
starting warming up: 10
Score:
index append: 1 wallclock secs ( 1.05 usr + 0.00 sys = 1.05 CPU) @ 51124.51/s (n=53695)
insert append: 1 wallclock secs ( 1.06 usr + 0.00 sys = 1.06 CPU) @ 9185.70/s (n=9760)
Comparison chart:
Rate index append insert append
index append 51125/s -- 457%
insert append 9186/s -82% --Yes, this output format is taken from Benchmark.pm. This benchmarker is inspired by Benchmark.pm and tokuhirom/nanobench.
NOTE: This utility supports multi-platform (i.e. Windows is also supported!!).
Enjoy.