Adds Util.DebugExecutionTime(), which returns a table of function_name: milliseconds, in which each function's execution time is averaged over all time.
You can call this function like so:
-- event to print the debug times
MP.RegisterEvent("printStuff", "printStuff")
-- prints the execution time of all event handlers
function printStuff()
print(Util.DebugExecutionTime())
end
-- run every 5 seconds (or 10, or 60, whatever makes sense for you
MP.CreateEventTimer("printStuff", 5000)
Pretty print function:
function printDebugExecutionTime()
local stats = Util.DebugExecutionTime()
local pretty = "DebugExecutionTime:\n"
local longest = 0
for name, t in pairs(stats) do
if #name > longest then
longest = #name
end
end
for name, t in pairs(stats) do
pretty = pretty .. string.format("%" .. longest + 1 .. "s: %12f +/- %12f (min: %12f, max: %12f) (called %d time(s))\n", name, t.mean, t.stdev, t.min, t.max, t.n)
end
print(pretty)
end
Util.DebugExecutionTime() returns a table, where each key is an event handler function name, and each value is a table consisting of mean (simple average), stddev (standard deviation aka mean of the variance), min and max, all in milliseconds, as well as n as the number of samples taken.
Adds
Util.DebugExecutionTime()
, which returns a table offunction_name: milliseconds
, in which each function's execution time is averaged over all time.You can call this function like so:
Pretty print function:
Util.DebugExecutionTime()
returns a table, where each key is an event handler function name, and each value is a table consisting ofmean
(simple average),stddev
(standard deviation aka mean of the variance),min
andmax
, all in milliseconds, as well asn
as the number of samples taken.