Graphical profiler for Love2D 9.2
Go to file
2015-11-09 16:45:48 +00: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 added documentation to read me. 2015-11-09 16:45:48 +00: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:dettach()
 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:

To redefine only one of the keys: lua piefiller:setKey(mode,key) example: lua piefiller:setKey("increase_depth","up") To redefine all of the keys: ```lua

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:
```lua
	local 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.