mcl_devtest/abmp/init.lua

36 lines
1.1 KiB
Lua
Raw Permalink Normal View History

2022-03-12 00:54:51 +01:00
local count={}
local times={}
2022-07-31 06:16:07 +02:00
local max_times={}
2022-03-12 00:54:51 +01:00
local total=0
local nabm=0
minetest.register_on_mods_loaded(function()
2022-07-31 06:16:07 +02:00
2022-03-12 00:54:51 +01:00
for k,v in pairs(minetest.registered_abms) do
local n=v.label
local olda=v.action
minetest.registered_abms[k].action=function(pos, node, aoc, aocw)
local t1=os.clock()
local r=olda(pos, node, aoc, aocw)
times[n]=os.clock()-t1
2022-11-14 20:41:18 +01:00
if times[n] > ( max_times[n] or 0 ) then max_times[n] = times[n] end
2022-03-12 00:54:51 +01:00
if not count[n] then count[n] = 0 end
count[n]=count[n]+1
total=total+times[n]
nabm=nabm+1
return r
end
end
end)
minetest.register_chatcommand("abmp",{privs={debug=true},
description="Give an overview of the registered abms and how long they each take",
func=function(p)
table.sort(count)
table.sort(times)
minetest.chat_send_player(p,"counts:"..dump(count))
2022-07-31 06:16:07 +02:00
minetest.chat_send_player(p,"=== times:"..dump(times))
minetest.chat_send_player(p,"=== max times:"..dump(max_times))
2022-03-12 00:54:51 +01:00
minetest.chat_send_player(p,"total abm time last interval:"..dump(total))
minetest.chat_send_player(p,"total abms registered:"..dump(#times))
end})