Core.profilerReport
From GiderosMobile
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Available since: Gideros 2017.8
Class: Core
Description
Returns an associative array of tables describing CPU usage of lua functions.
(table) = Core.profilerReport()
Each table in the array is indexed by a unique function id and has the following content:
- name - Name of the function
- time - Total time spent in the function (seconds)
- count - Number of times this function was called
- callers - A table containing the same information has above for each function which called this one
Return values
Returns (table) table with profiling data
Example
max = 10000
calls = 10
a = -458
local abs=math.abs
function test1()
for loop=1,max do
local sign=math.abs(a)/a
end
end
function test2()
for loop=1,max do
local sign=1
if a<0 then sign=-1 end
end
end
function test3()
for loop=1,max do
local sign=a < 0 and -1 or 1
end
end
Core.profilerReset()
Core.profilerStart()
for loop = 1, calls do
test1()
test2()
test3()
end
Core.profilerStop()
-- print the results of the profiler
result = Core.profilerReport()
print("Number of tests:", max*calls)
for k,v in pairs(result) do
local found=false
for k2,v2 in pairs(v) do
if found and k2=="time" then print(v1,v2) end
if k2=="name" and string.sub(v2,1,4)=="test" then v1=v2 found=true end
end
end