Class PerformanceCounter


  • public class PerformanceCounter
    extends java.lang.Object
    Class to keep track of the time and load (percentage of total time) a specific task takes. Call start() just before starting the task and stop() right after. You can do this multiple times if required. Every render or update call tick() to update the values. The time FloatCounter provides access to the minimum, maximum, average, total and current time (in seconds) the task takes. Likewise for the load value, which is the percentage of the total time.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      float current
      The current value in seconds, you can manually increase this using your own timing mechanism if needed, if you do so, you also need to update valid.
      FloatCounter load
      The load value of this counter
      java.lang.String name
      The name of this counter
      FloatCounter time
      The time value of this counter (seconds)
      boolean valid
      Flag to indicate that the current value is valid, you need to set this to true if using your own timing mechanism
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void reset()
      Resets this performance counter to its defaults values.
      void start()
      Start counting, call this method just before performing the task you want to keep track of.
      void stop()
      Stop counting, call this method right after you performed the task you want to keep track of.
      void tick()
      Updates the time and load counters and resets the time.
      void tick​(float delta)
      Updates the time and load counters and resets the time.
      java.lang.String toString()
      StringBuilder toString​(StringBuilder sb)
      Creates a string in the form of "name [time: value, load: value]"
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • time

        public final FloatCounter time
        The time value of this counter (seconds)
      • load

        public final FloatCounter load
        The load value of this counter
      • name

        public final java.lang.String name
        The name of this counter
      • current

        public float current
        The current value in seconds, you can manually increase this using your own timing mechanism if needed, if you do so, you also need to update valid.
      • valid

        public boolean valid
        Flag to indicate that the current value is valid, you need to set this to true if using your own timing mechanism
    • Constructor Detail

      • PerformanceCounter

        public PerformanceCounter​(java.lang.String name)
      • PerformanceCounter

        public PerformanceCounter​(java.lang.String name,
                                  int windowSize)
    • Method Detail

      • tick

        public void tick()
        Updates the time and load counters and resets the time. Call start() to begin a new count. The values are only valid after at least two calls to this method.
      • tick

        public void tick​(float delta)
        Updates the time and load counters and resets the time. Call start() to begin a new count.
        Parameters:
        delta - The time since the last call to this method
      • start

        public void start()
        Start counting, call this method just before performing the task you want to keep track of. Call stop() when done.
      • stop

        public void stop()
        Stop counting, call this method right after you performed the task you want to keep track of. Call start() again when you perform more of that task.
      • reset

        public void reset()
        Resets this performance counter to its defaults values.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • toString

        public StringBuilder toString​(StringBuilder sb)
        Creates a string in the form of "name [time: value, load: value]"