Class Profile

java.lang.Object
org.djutils.profile.Profile

public final class Profile extends Object
Utility class to profile code execution times.
Insert a call to one of the start methods at the start of each method (or part thereof) that must be timed and a call to one of the end methods at the end of the part to profile or right before every return statement of each of those methods.
The collected statistics information can be retrieved with the statistics method.
To output statistics at (somewhat) regular intervals call print method often. The default interval is 1 second; this can be changed by calling the setPrintInterval method.

Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See DJUTILS License.

Author:
Alexander Verbraeck, Peter Knoppers, Wouter Schakel
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    Remove all collected statistics.
    static void
    end()
    Ends timing on the calling class and method, specified by line number (of the start command).
    static void
    end(String name)
    Ends timing on the calling class and method, specified by given name.
    static void
    Prints profiling output to the console once every 1s or longer, or according to the time set in setPrintInterval().
    static void
    Reset the collected running time values of all observed methods and method fragments.
    static void
    setPrintInterval(long printInterval)
    Sets a print interval.
    static void
    Starts timing on the calling class and method, specified by line number.
    static void
    start(String name)
    Starts timing on the calling class and method, specified by given name.
    static String
    Returns a formatted string of a table with statistics.
    static String
    Return statistics of one sampler (which must have identified itself with a name).

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • start

      public static void start()
      Starts timing on the calling class and method, specified by line number.
    • start

      public static void start(String name)
      Starts timing on the calling class and method, specified by given name.
      Parameters:
      name - String; name
    • end

      public static void end()
      Ends timing on the calling class and method, specified by line number (of the start command).
    • end

      public static void end(String name)
      Ends timing on the calling class and method, specified by given name.
      Parameters:
      name - String; name
    • statistics

      public static String statistics()
      Returns a formatted string of a table with statistics.
      Returns:
      String formatted string of a table with statistics
    • statistics

      public static String statistics(String name)
      Return statistics of one sampler (which must have identified itself with a name).
      Parameters:
      name - String; name that was used in start and end calls.
      Returns:
      String; the results, or null if no information was gathered under that name
    • print

      public static void print()
      Prints profiling output to the console once every 1s or longer, or according to the time set in setPrintInterval(). This method needs to be called frequently, and will only print again after the print interval has elapsed. If execution time between two calls to this method is longer than the print interval, this method prints directly.
    • setPrintInterval

      public static void setPrintInterval(long printInterval)
      Sets a print interval.
      Parameters:
      printInterval - long; print interval in ms
    • clear

      public static void clear()
      Remove all collected statistics. Does not reset the print interval, or the time of last print.
    • reset

      public static void reset()
      Reset the collected running time values of all observed methods and method fragments.