Benchmarking
local start = os.clock() -- save current CPU time
for i = 1, 100000 do
-- do something
end
print('Time taken: '.. (os.clock() - start) ..' seconds.')do
local units = {
['seconds'] = 1,
['milliseconds'] = 1000,
['microseconds'] = 1000000,
['nanoseconds'] = 1000000000
}
function benchmark(unit, decPlaces, n, f, ...)
local elapsed = 0
local multiplier = units[unit]
for i = 1, n do
local now = os.clock()
f(...)
elapsed = elapsed + (os.clock() - now)
end
print(string.format('Benchmark results:\n - %d function calls\n - %.'.. decPlaces ..'f %s elapsed\n - %.'.. decPlaces ..'f %s avg execution time.', n, elapsed * multiplier, unit, (elapsed / n) * multiplier, unit))
end
endLast updated