Graphical profiler for Love2D >= 0.92
Go to file
/Fox --develop 219c51771d Found another typo in ReadMe
"Keys" header was also borked
2017-07-24 21:07:49 -07:00
LICENSE Initial commit 2015-11-07 11:18:57 +00:00
main.lua Added functions: 2015-11-09 16:33:02 +00:00
piefiller.lua added documentation to read me. 2015-11-09 16:45:48 +00:00
README.md Found another typo in ReadMe 2017-07-24 21:07:49 -07:00

Piefiller

Graphical profiler for Love2D 9.2

Usage

  1. require the file:
  piefiller = require("piefiller")
  1. make a new instance of piefiller
  Pie = piefiller:new()
  1. attach the piefiller to the part of your application that you want to monitor, it can be whatever but I suggest calling it in love.update or love.draw as this is what piefiller is all about.
 function love.update()
	Pie:attach()
		-- do something
	Pie:detach()
 end
  1. draw the output in your draw function and give event hooks for your pie.
 function love.draw()
	Pie:draw()
 end
 function love.keypressed(...)
 	Pie:keypressed(...)
 end
 function love.mousepressed(...)
 	Pie:mousepressed(...)
 end
  1. When you get sufficient output press the "P" key to output to file.

Keys

r = resets the pie

up = decreases depth

down = increases depth

, = decreases step size

. = increases step size

s = shortens the names displayed

c = hides/shows hidden processes

p = saves to file called "Profile" and opens directory for you

To redefine these:

Modes available:

reset
increase_depth
decrease_depth
increase_step_size
decrease_step_size
shorten_names
show_hidden
save_to_file

To redefine only one of the keys:

piefiller:setKey(mode,key)

example:

piefiller:setKey("increase_depth","up")

To redefine all of the keys:

	
table = {
	"increase_depth" = "up"
}
piefiller:setKey(table)
	

For your own interpretation

If you wish to interpret the data on your own use piefiller:unpack().
Output is a table as such:
	data = {
		items = { 
			{ 
				name,
				line_defined, 
				current_line,
				source,
				time_taken, 
				percentage,
				caller,
			}
		}, 
		about = {
			depth,
			step, 
			totalTime,
		}, 
	} 

Additional notes

The best depth to search for is 2 and 3.

When used in large applications the output is difficult to read, however printing to file resolves this issue.

Planned features

Make sure that text does not overlay.