Added memory tracer
This commit is contained in:
parent
c08c0fdede
commit
e63d3f03eb
2 changed files with 28 additions and 2 deletions
|
@ -1,2 +1,25 @@
|
|||
module("luci.debug", package.seeall)
|
||||
__file__ = debug.getinfo(1, 'S').source:sub(2)
|
||||
local debug = require "debug"
|
||||
local io = require "io"
|
||||
local collectgarbage = collectgarbage
|
||||
|
||||
module "luci.debug"
|
||||
__file__ = debug.getinfo(1, 'S').source:sub(2)
|
||||
|
||||
-- Enables the memory tracer with given flags and returns a function to disable the tracer again
|
||||
function trap_memtrace(flags)
|
||||
flags = flags or "l"
|
||||
local tracefile = io.open("/tmp/memtrace", "w")
|
||||
|
||||
local function trap(what, line)
|
||||
local info = debug.getinfo(2, "Sn")
|
||||
tracefile:write(info.source..":"..line.."\t"..(info.namewhat or "").."\t"..(info.name or "").."\t"..collectgarbage("count").."\n")
|
||||
end
|
||||
|
||||
debug.sethook(trap, flags)
|
||||
|
||||
return function()
|
||||
debug.sethook()
|
||||
tracefile:close()
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -112,11 +112,14 @@ function httpdispatch(request)
|
|||
end
|
||||
|
||||
luci.http.close()
|
||||
|
||||
--context._disable_memtrace()
|
||||
end
|
||||
|
||||
--- Dispatches a LuCI virtual path.
|
||||
-- @param request Virtual path
|
||||
function dispatch(request)
|
||||
--context._disable_memtrace = require "luci.debug".trap_memtrace()
|
||||
local ctx = context
|
||||
ctx.path = request
|
||||
|
||||
|
|
Loading…
Reference in a new issue