Package org.spongepowered.asm.util.perf

## Class Profiler

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

    public final class Profiler
    extends java.lang.Object

Performance profiler for Mixin.

### Nested Class Summary

Nested Classes
`static class` `Profiler.Section` Base abstract profiler section.

### Field Summary

Fields
`static int` `FINE` Flag to indicate a fine section.
`static int` `ROOT` Flag to indicate a root section.

### Constructor Summary

Constructors
`Profiler​(java.lang.String id)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`Profiler.Section` `begin​(int flags, java.lang.String name)` Begin a new profiler section using the specified name and flags
`Profiler.Section` `begin​(int flags, java.lang.String... path)` Begin a new profiler section using the specified path and flags
`Profiler.Section` `begin​(java.lang.String name)` Begin a new profiler section using the specified name
`Profiler.Section` `begin​(java.lang.String... path)` Begin a new profiler section using the specified path
`Profiler.Section` `get​(java.lang.String name)` Get the specified profiler section
`static Profiler` `getProfiler​(java.lang.String id)` Get the specified performance profiler
`static java.util.Collection<Profiler>` `getProfilers()` Get all available performance profilers
`java.util.Collection<Profiler.Section>` `getSections()` Get all recorded profiler sections
`void` `mark​(java.lang.String phase)` Mark a new phase (time slice) for this profiler, all sections record their current times and then reset to zero.
`static void` `printAuditSummary()` Print summary of mixin performance from all active profilers to the console
`PrettyPrinter` `printer​(boolean includeFine, boolean group)` Get the profiler state with all sections in a `PrettyPrinter`.
`void` `printSummary()` Print summary of this profiler's recorded performance to the console
`void` `reset()` Reset all profiler state
`static void` `setActive​(boolean active)` Set the active state of the profiler.
`java.lang.String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### 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:
  Constant Field Values

#### 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:
  Constant Field Values

### Constructor Detail

#### Profiler

    public Profiler​(java.lang.String id)

### Method Detail

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.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​(java.lang.String name)

Get the specified profiler section

Parameters:
  `name` - section name
Returns:
  profiler section

#### begin

    public Profiler.Section begin​(java.lang.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,
                                  java.lang.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​(java.lang.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,
                                  java.lang.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​(java.lang.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 java.util.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​(java.lang.String id)

Get the specified performance profiler

Parameters:
  `id` - Profiler id
Returns:
  profiler

#### getProfilers

    public static java.util.Collection<Profiler> getProfilers()

Get all available performance profilers

Returns:
  immutable collection of profilers