Class Profiler

java.lang.Object
org.spongepowered.asm.util.perf.Profiler

public final class Profiler extends Object
Performance profiler for Mixin.
  • Field Details

    • ROOT

      public static final int ROOT
      Flag to indicate a root section. Root sections are always recorded at the root wherever they occur, but may appear under other sections in order to show the time share of the root section relative to the parent.
      See Also:
    • FINE

      public static final int FINE
      Flag to indicate a fine section. Fine sections are always recorded, but are only displayed in the printed output if the includeFine flag is set.
      See Also:
  • Constructor Details

    • Profiler

      public Profiler(String id)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • setActive

      public static void setActive(boolean active)
      Set the active state of the profiler.
      Parameters:
      active - new active state
    • reset

      public void reset()
      Reset all profiler state
    • get

      public Profiler.Section get(String name)
      Get the specified profiler section
      Parameters:
      name - section name
      Returns:
      profiler section
    • begin

      public Profiler.Section begin(String... path)
      Begin a new profiler section using the specified path
      Parameters:
      path - path parts
      Returns:
      new profiler section
    • begin

      public Profiler.Section begin(int flags, String... path)
      Begin a new profiler section using the specified path and flags
      Parameters:
      flags - section flags
      path - path parts
      Returns:
      new profiler section
    • begin

      public Profiler.Section begin(String name)
      Begin a new profiler section using the specified name
      Parameters:
      name - section name
      Returns:
      new profiler section
    • begin

      public Profiler.Section begin(int flags, String name)
      Begin a new profiler section using the specified name and flags
      Parameters:
      flags - section flags
      name - section name
      Returns:
      new profiler section
    • mark

      public void mark(String phase)
      Mark a new phase (time slice) for this profiler, all sections record their current times and then reset to zero. If no times have been recorded in the current phase, the phase is discarded.
      Parameters:
      phase - Name of the phase
    • getSections

      public Collection<Profiler.Section> getSections()
      Get all recorded profiler sections
    • printer

      public PrettyPrinter printer(boolean includeFine, boolean group)
      Get the profiler state with all sections in a PrettyPrinter.
      Parameters:
      includeFine - Include sections marked as FINE
      group - Group delegated sections with their root instead of in the normal alphabetical order
      Returns:
      PrettyPrinter with section data
    • printSummary

      public void printSummary()
      Print summary of this profiler's recorded performance to the console
    • printAuditSummary

      public static void printAuditSummary()
      Print summary of mixin performance from all active profilers to the console
    • getProfiler

      public static Profiler getProfiler(String id)
      Get the specified performance profiler
      Parameters:
      id - Profiler id
      Returns:
      profiler
    • getProfilers

      public static Collection<Profiler> getProfilers()
      Get all available performance profilers
      Returns:
      immutable collection of profilers