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
`protected boolean` `invalidated` True if this section has been invalidated by a call to Profiler#clear

### Method Summary

All Methods Instance Methods Concrete Methods
`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