Please do not hesitate to give feedback, even if that feedback consists of negative comments
Instructions:
- Type /profiler to open the profiler
- Click the On/Off button in the upper right
- Do stuff
- Click the On/Off button again to stop profiling
- Figure out what needs optimization
- ....
- Profit!
Options:
- Exclude Carbine Addons
- Hides Carbine Addons from profile results
- Filename and Function name filters
- Can be set by right clicking in the table or via the options pane
- Uses string.find so you can use lua patterns.
- Please note this only filters the collected data it does not change what is collected.
- Function Inspection
- Show the calling functions for the inspected function
- Right click a function name to set inspection or enter it in the upper left edit box
- Eye turns gold when a function is an inspection target
- Depth slider determines how many levels above the calling function will be recorded
- Inspection only occurs during profiling so you must run a profile after setting the inspect
- Call/Return or Count Button.
- Sets the type of profiling you wish do to.
- Instructions per hook is only available during Count type.
- Instructions slider
- Sets how many instructions per hook, see debug.sethook for details
- Can also type a number in where it displays the number being set.
- Only present when in Count mode
GeminiProfiler can be interacted through via Methods.
- StartProfiling
Starts Profiling, this erases all previous profiling data
Example:
local GeminiProfiler = Apollo.GetAddon("GeminiProfiler")
GeminiProfiler:StartProfiling() - StopProfiling
Stops profiling and generates a report
Example:
local GeminiProfiler = Apollo.GetAddon("GeminiProfiler")
GeminiProfiler:StopProfiling() - SetDebugType
Arguments:
bCount = booleanEffect on the debug hook:
Use call count only no time records
Default is bCount = false. This means that time is available (This is a higher load though)
Example:
local GeminiProfiler = Apollo.GetAddon("GeminiProfiler")
GeminiProfiler:SetDebugType(true) - SetFilters
Arguments:
bExcludeCarbine = boolean
tFilters = table
tFilters Options:
name
namewhat
addon
file
lineDefined
timer
relTime
countDescription:
This field indicates if we should ignore all carbine addons
Table of filters
Description:
Function name
Type of function one of: "global", "local", "method", "field", or ""
Name of Addon the function exists in
Name of File the function exists in
Line number the function is defined on
How long the function ran
Amount of time used by function / time profiling was ran
How many times the function was called
If there is no filter for a given field in the passed table that field will not be filtered on.
Pass an empty table or nil to clear out all filters
Example:
local GeminiProfiler = Apollo.GetAddon("GeminiProfiler")
GeminiProfiler:SetFilters(false, { name = "MyFunc", addon = "MyAddon" }) - SetHookCount
Arguments:
nHookCount = integerEffect on the debug:
Sets hook count, determines how many instructions before called
Default is 300 so that it runs every 300 instructions. Only has an effect if the type is Count
Example:
local GeminiProfiler = Apollo.GetAddon("GeminiProfiler")
GeminiProfiler:SetHookCount(100)
The window is resizable drag the lower left corner slightly outside the box.
The row columns are resizeable as well. Sorting is support
None of your size changes are saved currently
The row columns are resizeable as well. Sorting is support
None of your size changes are saved currently