Package org.spongepowered.asm.util.perf

## Class Profiler.Section

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

- Enclosing class:
    Profiler

      public abstract static class Profiler.Section
      extends java.lang.Object

  Base abstract profiler section. When disabled, the profiler itself returns `Profiler.DisabledSection` so as to consume minimal resources without needing to introduce nullability checks everwhere that sections are used. When enabled, `Profiler.LiveSection` is used to record timings.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected boolean` | `invalidated` | True if this section has been invalidated by a call to Profiler#clear

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Profiler.Section` | `end()` | Stop timing of this section and end it (pop from profiler stack)
    `double` | `getAverageTime()` | Get the average time in milliseconds of each time period recorded in the current slice
    `java.lang.String` | `getBaseName()` | Get the base name for this section, for delegated sections this is the name of the parent section, minus the root
    `int` | `getCount()` | Get the number of total time periods recorded in the current slice
    `protected int` | `getCursor()` |
    `java.lang.String` | `getInfo()` | Get the auxilliary info for this section
    `protected int` | `getMarkedCount()` | Internal accessor for markedCount from LiveSection, used by ResultSection
    `protected long` | `getMarkedTime()` | Internal accessor for markedTime from LiveSection, used by ResultSection
    `java.lang.String` | `getName()` | Get the section name
    `double` | `getSeconds()` | Get the current time in seconds in the current phase
    `long` | `getTime()` | Get the current time in milliseconds in the current phase
    `long[]` | `getTimes()` | Get all available time slices including the current one in milliseconds
    `double` | `getTotalAverageTime()` | Get the average time in milliseconds of each time period recorded in the all slices
    `int` | `getTotalCount()` | Get the number of total time periods recorded in the all slices
    `double` | `getTotalSeconds()` | Get the current time in seconds in all phases
    `long` | `getTotalTime()` | Get the current time in milliseconds in all phases
    `boolean` | `isFine()` | Get whether this section is FINE
    `boolean` | `isRoot()` | Get whether this is a root section
    `Profiler.Section` | `next​(java.lang.String name)` | Stop timing of this section and start a new section at the same level
    `void` | `setInfo​(java.lang.String info)` | Set the auxilliary info for this section
    `protected Profiler.Section` | `stop()` | Stop timing of this section
    `java.lang.String` | `toString()` |

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

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

- - ### Field Detail

    - #### invalidated

          protected boolean invalidated

      True if this section has been invalidated by a call to Profiler#clear

  - ### Method Detail

    - #### getCursor

          protected int getCursor()

    - #### isRoot

          public boolean isRoot()

      Get whether this is a root section

    - #### isFine

          public boolean isFine()

      Get whether this section is FINE

    - #### getName

          public java.lang.String getName()

      Get the section name

    - #### getBaseName

          public java.lang.String getBaseName()

      Get the base name for this section, for delegated sections this is the name of the parent section, minus the root

    - #### setInfo

          public void setInfo​(java.lang.String info)

      Set the auxilliary info for this section
      Parameters:
        `info` - aux info

    - #### getInfo

          public java.lang.String getInfo()

      Get the auxilliary info for this section

    - #### stop

          protected Profiler.Section stop()

      Stop timing of this section
      Returns:
        fluent

    - #### end

          public Profiler.Section end()

      Stop timing of this section and end it (pop from profiler stack)
      Returns:
        fluent

    - #### next

          public Profiler.Section next​(java.lang.String name)

      Stop timing of this section and start a new section at the same level
      Parameters:
        `name` - name of the next section
      Returns:
        new section

    - #### getTime

          public long getTime()

      Get the current time in milliseconds in the current phase

    - #### getTotalTime

          public long getTotalTime()

      Get the current time in milliseconds in all phases

    - #### getSeconds

          public double getSeconds()

      Get the current time in seconds in the current phase

    - #### getTotalSeconds

          public double getTotalSeconds()

      Get the current time in seconds in all phases

    - #### getTimes

          public long[] getTimes()

      Get all available time slices including the current one in milliseconds

    - #### getCount

          public int getCount()

      Get the number of total time periods recorded in the current slice

    - #### getTotalCount

          public int getTotalCount()

      Get the number of total time periods recorded in the all slices

    - #### getAverageTime

          public double getAverageTime()

      Get the average time in milliseconds of each time period recorded in the current slice

    - #### getTotalAverageTime

          public double getTotalAverageTime()

      Get the average time in milliseconds of each time period recorded in the all slices

    - #### toString

          public final java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### getMarkedTime

          protected long getMarkedTime()

      Internal accessor for markedTime from LiveSection, used by ResultSection

    - #### getMarkedCount

          protected int getMarkedCount()

      Internal accessor for markedCount from LiveSection, used by ResultSection