Thread History View


  The thread history view shows the list of all threads in the JVM in the order they were started. On the left hand side of the view, the names of the threads appear as a fixed column, the rest of the view is filled with a scrollable measuring tool which shows time on its horizontal axis. The origin of the time axis coincides with the starting time of the first thread in the JVM. Each alive thread is shown as a colored line which starts when the thread is started and ends when the thread dies. The color indicates a certain thread status and is one of
  • green
    Green color means that the thread is runnable and eligible for receiving CPU time by the scheduler. This does not mean that the thread has in fact consumed CPU time, only that the thread was ready to run and was not blocking or sleeping. How much CPU time a thread is allotted, depends on various other factors such as general system load, the thread's priority and the scheduling algorithm.
  • orange
    Orange color means that the thread is waiting. The thread is sleeping and will be woken up either by a timer or by another thread.
  • red
    Red color means that the thread is blocking. The thread has is trying to enter a synchronized code section or a synchronized method whose monitor is currently held by another thread.
  • blue
    Light blue color means that the thread is in Net I/O. The thread is waiting for a network operation of the java library to complete. This thread state occurs if a thread is listening for socket connections or if it is waiting to read or write data to a socket.
Note: If you are color-blind, you can edit bin/jprofiler.vmoptions and set -Djprofiler.highContrastMode=true. The above colors will then have an optimal contrast.
  At the top of the view, there is a thread filter selector. You can use it to filter the displayed threads by
  • liveness status
    From the combo box you can choose if you wish to display
    • Both alive and dead threads
    • Alive threads only
    • Dead threads only
  • name
    In the text box you can enter the full name of a thread or only a part of it. Only threads whose names begin with this fragment are displayed. You can also use wildcards ("*" and "?") to select groups of threads. Please note that if you use wildcards, you have to manually append a trailing "*" if desired. You can display the union of multiple filters at the same time by separating multiple filter expressions with commas, e.g. AWT-, MyThreadGroup-*-Daemon.

    The selection is performed once you press the enter key. The combo box contains all entries performed during the current session. The [Reset filters] button can be used to remove all filters.

  When you move the mouse across the thread history view, the time at the position of the mouse cursor will be shown in JProfiler's status bar. If you have recorded monitor events, a tool tip with the stack trace and links into the locking history graph and the monitor history view will be displayed. The link to the locking history graph points to the time that the event has started, the linked entry in the monitor history view shows the entire event. If the event has not yet completed, the link into the monitor history view is not available.
  When you right-click a thread name on the left side of the view, a context menu will be displayed that allows you to jump to the Call tree view or the Hot spots view and display the single selected thread there.
  Please see the help on graphs with a time axis for help on common properties of graph views.
  Grid lines and background of the thread history view can be configured in the thread history view settings dialog.