GeminiProfiler

GeminiProfiler is an AddOn designed to provide some measure of information about the functions running and their computation time. This is intended to help developers optimize their code.
This image shows an example Profile ran with Count as an option.

This image shows an example Profile ran with Count as an option.

This image shows a sample Profile with the Inspect option used and an inspection depth of 5.

This image shows a sample Profile with the Inspect option used and an inspection depth of 5.

This Image shows an example Profile with done with the Time options.

This Image shows an example Profile with done with the Time options.

Description

Please do not hesitate to give feedback, even if that feedback consists of negative comments :)


Instructions:

  1. Type /profiler to open the profiler
  2. Click the On/Off button in the upper right
  3. Do stuff
  4. Click the On/Off button again to stop profiling
  5. Figure out what needs optimization
  6. ....
  7. 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 = boolean
    Effect 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
    count
    Description:
    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 = integer
    Effect 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 GeminiProfiler Team

profile avatar
  • 1
    Followers
  • 15
    Projects
  • 819.0K
    Downloads

More from SinaloitView all

  • JunkIt project image

    JunkIt

    • 788.8K
    • Addons

    JunkIt is an AddOn designed to integrate with the existing Carbine Vendor UI rather than replace it. JunkIt provides a config menu and an autojunk/repair option.

    • 788.8K
    • November 1, 2015
    • Addons
    • +1
  • GeminiConsole project image

    GeminiConsole

    • 3.9K
    • Addons

    An in-game Lua console

    • 3.9K
    • October 6, 2015
    • Addons
  • GuildPixies project image

    GuildPixies

    • 5.5K
    • Addons

    Colorize AMPs and indicate if they are or schematics are known ... with Pixie power! -- Note: Pixies are imprisoned within the GuildBank at this time and cannot be set free.

    • 5.5K
    • September 3, 2014
    • Addons
    • +1
  • GeminiAddon project image

    GeminiAddon

    • 366
    • Addons

    WildStar Library - Provides a template for creating addon objects for WildStar

    • 366
    • August 21, 2014
    • Addons
  • JunkIt project image

    JunkIt

    • 788.8K
    • Addons

    JunkIt is an AddOn designed to integrate with the existing Carbine Vendor UI rather than replace it. JunkIt provides a config menu and an autojunk/repair option.

    • 788.8K
    • November 1, 2015
    • Addons
    • +1
  • GeminiConsole project image

    GeminiConsole

    • 3.9K
    • Addons

    An in-game Lua console

    • 3.9K
    • October 6, 2015
    • Addons
  • GuildPixies project image

    GuildPixies

    • 5.5K
    • Addons

    Colorize AMPs and indicate if they are or schematics are known ... with Pixie power! -- Note: Pixies are imprisoned within the GuildBank at this time and cannot be set free.

    • 5.5K
    • September 3, 2014
    • Addons
    • +1
  • GeminiAddon project image

    GeminiAddon

    • 366
    • Addons

    WildStar Library - Provides a template for creating addon objects for WildStar

    • 366
    • August 21, 2014
    • Addons