Class Profiler

  • All Implemented Interfaces:
    TimeInstrument

    public class Profiler
    extends java.lang.Object
    implements TimeInstrument
    A poor man's profiler to measure the time elapsed performing some lengthy task.
    • Field Detail

      • PROFILER_MARKER_NAME

        static final java.lang.String PROFILER_MARKER_NAME
        See Also:
        Constant Field Values
      • MIN_SW_ELAPSED_TIME_NUMBER_LENGTH

        static final int MIN_SW_ELAPSED_TIME_NUMBER_LENGTH
        See Also:
        Constant Field Values
      • name

        final java.lang.String name
      • globalStopWatch

        final StopWatch globalStopWatch
      • childTimeInstrumentList

        java.util.List<TimeInstrument> childTimeInstrumentList
      • TOP_PROFILER_FIRST_PREFIX

        static java.lang.String TOP_PROFILER_FIRST_PREFIX
      • NESTED_PROFILER_FIRST_PREFIX

        static java.lang.String NESTED_PROFILER_FIRST_PREFIX
      • TOTAL_ELAPSED

        static java.lang.String TOTAL_ELAPSED
      • SUBTOTAL_ELAPSED

        static java.lang.String SUBTOTAL_ELAPSED
      • ELAPSED_TIME

        static java.lang.String ELAPSED_TIME
    • Constructor Detail

      • Profiler

        public Profiler​(java.lang.String name)
    • Method Detail

      • getName

        public java.lang.String getName()
        Description copied from interface: TimeInstrument
        All time instruments are named entities.
        Specified by:
        getName in interface TimeInstrument
        Returns:
        the name of this instrument
      • registerWith

        public void registerWith​(ProfilerRegistry profilerRegistry)
      • getLogger

        public Logger getLogger()
      • setLogger

        public void setLogger​(Logger logger)
      • start

        public void start​(java.lang.String name)
        Starts a child stop watch and stops any previously started time instruments.
        Specified by:
        start in interface TimeInstrument
      • startNested

        public Profiler startNested​(java.lang.String name)
      • stopLastTimeInstrument

        void stopLastTimeInstrument()
      • elapsedTime

        public long elapsedTime()
        Description copied from interface: TimeInstrument
        Time elapsed between start and stop, in nanoseconds.
        Specified by:
        elapsedTime in interface TimeInstrument
        Returns:
        time elapsed in nanoseconds
      • sanityCheck

        void sanityCheck()
                  throws java.lang.IllegalStateException
        This method is used in tests.
        Throws:
        java.lang.IllegalStateException
      • print

        public void print()
        Description copied from interface: TimeInstrument
        Print information about this time instrument on the console.
        Specified by:
        print in interface TimeInstrument
      • toString

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

        public void log()
        Description copied from interface: TimeInstrument
        If the time instrument has an associated logger, then log information about this time instrument. Note that StopWatch instances cannot log while Profiler instances can.
        Specified by:
        log in interface TimeInstrument
      • getCopyOfChildTimeInstruments

        public java.util.List<TimeInstrument> getCopyOfChildTimeInstruments()
        Return a copy of the child instrument list for this Profiler instance.
        Returns:
        a copy of this instance's child time instrument list
        Since:
        1.5.9
      • getCopyOfGlobalStopWatch

        public StopWatch getCopyOfGlobalStopWatch()
        Return a copy of the global stopwatch of this Profiler instance.
        Returns:
        a copy of this instance's global stop watch
        Since:
        1.5.9
      • buildProfilerString

        private java.lang.String buildProfilerString​(DurationUnit du,
                                                     java.lang.String firstPrefix,
                                                     java.lang.String label,
                                                     java.lang.String indentation)
      • buildStopWatchString

        private static void buildStopWatchString​(java.lang.StringBuilder buf,
                                                 DurationUnit du,
                                                 java.lang.String prefix,
                                                 java.lang.String indentation,
                                                 StopWatch sw)