Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local _GetTime = _G.GetTime
- local _unpack = _G.unpack
- local _setmetatable = _G.setmetatable
- local _tostring = _G.tostring
- local count = _GetTime()
- local FUNC_TIME = {}
- local FUNC_PCALL = {}
- RegisterEvent("RENDER_FRAME_UPDATE", function()
- if _GetTime() - count > 10000 then
- count = _GetTime()
- local data = {}
- for k, v in pairs(FUNC_TIME) do
- table.insert(data, { nTime = v.nTime, nCount = v.nCount, szName = k })
- end
- table.sort(data, function(a, b)
- return a.nTime > b.nTime
- end)
- local data2 = {}
- for k, v in pairs(FUNC_PCALL) do
- table.insert(data2, { nTime = v.nTime, nCount = v.nCount, szName = k })
- end
- table.sort(data2, function(a, b)
- return a.nTime > b.nTime
- end)
- local a = "name\ttime\tcount\n"
- for i = 1, 5 do
- if data[i] then
- a = a .. data[i].szName .. "\t" .. data[i].nTime .. "\t" .. data[i].nCount .. "\n"
- end
- end
- a = a .. "\n-------- PCALL ----------\n\n"
- for i = 1, 5 do
- if data2[i] then
- a = a .. data2[i].szName .. "\t" .. data2[i].nTime .. "\t" .. data2[i].nCount .. "\n"
- end
- end
- local t = TimeToDate(GetCurrentTime())
- Log("interface/0Analysis/analysis/LOG_" .. string.format("%02d.%02d.%02d", t.hour, t.minute, t.second) .. ".log", a, "close")
- -- SaveLUAData("interface/0Analysis/analysis/LOG_" .. string.format("%02d.%02d.%02d", t.hour, t.minute, t.second), { data = data, data2 = data2 }, "\t", false)
- FUNC_TIME = {}
- FUNC_PCALL = {}
- end
- end)
- for k, v in pairs(_G) do
- -- Log(k .." | " ..type(v))
- if type(v) == "function"
- and k ~= "OnEvent"
- and k ~= "OnFrameCreate"
- and k ~= "OnFrameBreathe"
- and k ~= "OnItemMouseEnter"
- and k ~= "OnItemMouseLeave"
- and k ~= "OnMouseEnter"
- and k ~= "OnMouseLeave"
- and k ~= "OnCheckBoxUncheck"
- and k ~= "OnCheckBoxCheck"
- and k ~= "OnDocumentComplete"
- and k ~= "OnFrameDragEnd"
- and k ~= "OnLButtonClick"
- and k ~= "OnItemLButtonClick"
- and k ~= "ReloadUIAddon"
- then
- -- Log(k)
- local fn = v
- _G[k] = function( ... )
- local nTime = _GetTime()
- local t = { fn(...) }
- local sort = _GetTime() - nTime
- if k == "pcall" then
- local c = { ... }
- local address = _tostring(c[1])
- FUNC_PCALL[address] = FUNC_PCALL[address] or { nTime = 0, nCount = 0 }
- FUNC_PCALL[address].nTime = FUNC_PCALL[address].nTime + sort
- FUNC_PCALL[address].nCount = FUNC_PCALL[address].nCount + 1
- end
- FUNC_TIME[k] = FUNC_TIME[k] or { nTime = 0, nCount = 0 }
- FUNC_TIME[k].nTime = FUNC_TIME[k].nTime + sort
- FUNC_TIME[k].nCount = FUNC_TIME[k].nCount + 1
- return _unpack(t)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement