Version: beta
FUNCTIONS | |
---|---|
profiler.enable_ui() | enables or disables the on-screen profiler ui |
profiler.get_cpu_usage() | get current CPU usage for app reported by OS |
profiler.get_memory_usage() | get current memory usage for app reported by OS |
profiler.log_text() | send a text to the profiler |
profiler.recorded_frame_count() | get the number of recorded frames in the on-screen profiler ui |
profiler.scope_begin() | start a profile scope |
profiler.scope_end() | end the current profile scope |
profiler.set_ui_mode() | sets the the on-screen profiler ui mode |
profiler.set_ui_view_mode() | sets the the on-screen profiler ui view mode |
profiler.set_ui_vsync_wait_visible() | Shows or hides the vsync wait time in the on-screen profiler ui |
profiler.view_recorded_frame() | displays a previously recorded frame in the on-screen profiler ui |
CONSTANTS | |
---|---|
profiler.MODE_PAUSE | pause on current frame |
profiler.MODE_RECORD | start recording |
profiler.MODE_RUN | continously show latest frame |
profiler.MODE_SHOW_PEAK_FRAME | pause at peak frame |
profiler.VIEW_MODE_FULL | show full profiler ui |
profiler.VIEW_MODE_MINIMIZED | show mimimal profiler ui |
profiler.enable_ui(enabled)
Creates and shows or hides and destroys the on-sceen profiler ui The profiler is a real-time tool that shows the numbers of milliseconds spent in each scope per frame as well as counters. The profiler is very useful for tracking down performance and resource problems.
PARAMETERS
enabled |
boolean |
true to enable, false to disable |
EXAMPLES
-- Show the profiler UI
profiler.enable_ui(true)
profiler.get_cpu_usage()
Get the percent of CPU usage by the application, as reported by the OS.
This function is not available on HTML5.
For some platforms ( Android, Linux and Windows), this information is only available
by default in the debug version of the engine. It can be enabled in release version as well
by checking track_cpu
under profiler
in the game.project
file.
(This means that the engine will sample the CPU usage in intervalls during execution even in release mode.)
PARAMETERS
None
RETURNS
percent |
number | of CPU used by the application |
profiler.get_memory_usage()
Get the amount of memory used (resident/working set) by the application in bytes, as reported by the OS. This function is not available on HTML5. The values are gathered from internal OS functions which correspond to the following;
OS | Value |
---|---|
iOS MacOS Android Linux |
Resident memory |
Windows | Working set |
HTML5 | Not available |
PARAMETERS
None
RETURNS
bytes |
number | used by the application |
EXAMPLES
Get memory usage before and after loading a collection:print(profiler.get_memory_usage())
msg.post("#collectionproxy", "load")
...
print(profiler.get_memory_usage()) -- will report a higher number than the initial call
profiler.log_text(text)
Send a text to the profiler
PARAMETERS
text |
string |
the string to send to the profiler |
EXAMPLES
profiler.log_text("Event: " .. name)
profiler.recorded_frame_count()
Get the number of recorded frames in the on-screen profiler ui recording buffer
PARAMETERS
None
RETURNS
frame_count |
number | the number of recorded frames, zero if on-screen profiler is disabled |
EXAMPLES
-- Show the last recorded frame
local recorded_frame_count = profiler.recorded_frame_count()
profiler.view_recorded_frame(recorded_frame_count)
profiler.scope_begin(name)
Starts a profile scope.
PARAMETERS
name |
string |
The name of the scope |
EXAMPLES
-- Go back one frame
profiler.scope_begin("test_function")
test_function()
profiler.scope_end()
profiler.scope_end()
End the current profile scope.
PARAMETERS
None
profiler.set_ui_mode(mode)
Set the on-screen profile mode - run, pause, record or show peak frame
PARAMETERS
mode |
constant |
the mode to set the ui profiler in
MODE_PAUSE or MODE_RUN .
You can also use the view_recorded_frame function to display a recorded frame. Doing so stops the recording as well.
Every time you switch to recording mode the recording buffer is cleared.
The recording buffer is also cleared when setting the MODE_SHOW_PEAK_FRAME mode. |
EXAMPLES
function start_recording()
profiler.set_ui_mode(profiler.MODE_RECORD)
end
function stop_recording()
profiler.set_ui_mode(profiler.MODE_PAUSE)
end
profiler.set_ui_view_mode(mode)
Set the on-screen profile view mode - minimized or expanded
PARAMETERS
mode |
constant |
the view mode to set the ui profiler in
|
EXAMPLES
-- Minimize the profiler view
profiler.set_ui_view_mode(profiler.VIEW_MODE_MINIMIZED)
profiler.set_ui_vsync_wait_visible(visible)
Shows or hides the time the engine waits for vsync in the on-screen profiler Each frame the engine waits for vsync and depending on your vsync settings and how much time your game logic takes this time can dwarf the time in the game logic making it hard to see details in the on-screen profiler graph and lists. Also, by hiding this the FPS times in the header show the time spent each time excuding the time spent waiting for vsync. This shows you how long time your game is spending actively working each frame. This setting also effects the display of recorded frames but does not affect the actual recorded frames so it is possible to toggle this on and off when viewing recorded frames. By default the vsync wait times is displayed in the profiler.
PARAMETERS
visible |
boolean |
true to include it in the display, false to hide it. |
EXAMPLES
-- Exclude frame wait time form the profiler ui
profiler.set_ui_vsync_wait_visible(false)
profiler.view_recorded_frame(frame_index)
Pauses and displays a frame from the recording buffer in the on-screen profiler ui The frame to show can either be an absolute frame or a relative frame to the current frame.
PARAMETERS
frame_index |
table |
a table where you specify one of the following parameters:
|
EXAMPLES
-- Go back one frame
profiler.view_recorded_frame({distance = -1})
pause on current frame
start recording
continously show latest frame
pause at peak frame
show full profiler ui
show mimimal profiler ui