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