local memstack, timestack = {}, {} local memdiff, timediff function triggerevent(...) if memdiff then pushed = true table.insert(memstack, memdiff) table.insert(timestack, timediff) end local mem, time = gcinfo(), GetTime() memdiff, timediff = 0, 0 -- do shit -- save to debug table profiletable.mem, profiletable.time = gcinfo() - memdiff - mem, GetTime() - timediff - time memdiff, timediff = table.remove(memstack), table.remove(timestack) if memdiff then memdiff = memdiff + profiletable.mem timediff = timediff + profiletable.time end end