sysperfana/perfinvestigator/com.nokia.carbide.cpp.pi.doc.user/html/reference/analyzer/thread_load.htm
author Toni Pulkkinen <ext-toni.p.pulkkinen@nokia.com>
Wed, 23 Jun 2010 15:05:09 +0300
changeset 12 ae255c9aa552
parent 5 844b047e260d
permissions -rw-r--r--
Performance Investigator Carbide extension 2.4.0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Thread Load</title>
  <link href="../../../book.css" rel="stylesheet" type="text/css">
</head>

<body>
<h2>Thread Load</h2>

<p>Select the Threads tab to display the Thread Load. The thread load data in
the main analysis view is built from the address/thread trace. The Thread Load
graph and related table show information about threads that were active during
the selected time period. The graph and table show the CPU load separated
according to the executed thread, independent of the binary or function in
which execution took place. Figure 1 shows an example graph with the Threads
tab selected.</p>

<p>The address/thread trace graph is the most generic and perhaps most
informative visual of the sampled data. The different colors represent
different items. Time is represented on the horizontal axis of the graph and
share of CPU use is represented on the vertical axis.</p>

<p></p>

<p align="center"><img src="images/thread_mode_graph.png" width="710"
height="728"> </p>

<p align="center" class="figure">Figure 1. Thread Load Graph displaying
combined CPU graph</p>

<p>Each of the lines in the thread table represents a single thread. The color
codes in the thread list correspond to the colors in the thread load graphs.
Therefore, each color in the thread load graph represents the load of its
corresponding thread.</p>

<p>Description of table columns:</p>
<ul>
  <li>The <b>% Load</b> column indicates what percentage of the CPU load was
    spent in each thread during the selected time interval.</li>
  <li>The <b>Thread</b> column identifies the thread by name and executable
    which is composed of: 
    <ul>
      <li>Executable or process name — name of the binary as identified by
        the OS</li>
      <li>Process ID (PID) — the process ID that uniquely identifies the
        process to the OS </li>
      <li>Thread name —the name of the thread</li>
      <li>Thread ID (TID) — the thread ID that uniquely identifies the thread
      </li>
    </ul>
  </li>
  <li>The <b>Samples</b> column indicates how many samples were taken during
    the selected time interval (in this case between 8.16 and 8.5 seconds).</li>
  <li>If the profiler data file contained thread priority information, then a
    <b>Priority List</b> column will be shown. The column lists the time at
    which a thread was assigned that priority. Sometimes you will see more than
    one priority listed for each thread.</li>
</ul>

<p>Columns may be reordered, resized, and sorted by clicking or dragging column
headers.</p>

<p>The final row of the information section contains summary information about
all threads below a threshold, if a threshold limit has been specified. The
threshold row is not affected by sorting, it is always the last row.</p>

<p>You can check or uncheck items to be displayed in the graph or right-click
to display a context menu of various options. The color next to a checkbox
corresponds to that item’s color in the graph.</p>

<h4>Scaling the Graph and Table According to CPU Clock Speed</h4>

<p>When CPU clock rate counter is included in the sampled Performance Counter
data, there is a <strong>Scale to CPU Clock Speed</strong> option available in
the graph context menu. When the option is selected, both the graph and the
<strong>% Load</strong> column of the legend table are scaled according to the
CPU clock speed. </p>

<h3>CPU Thread Load graphs in SMP systems</h3>

<p>For SMP systems with more than one CPU it is also possible to select to</p>
<ul>
  <li><b>Show Combined CPU Graph</b>, that is, to view all CPUs merged into one
    graph, as in Figure 1, or</li>
  <li><b>Show Separate CPU Graphs</b>, that is, to view a separate graph and
    table for each CPU, as in Figure 2.</li>
</ul>

<p>This is done by using either the context menu, which you can open by
right-clicking on the CPU graph; or in the <a
href="investigator_menu.htm">Investigator menu</a>'s CPU Load Graphs part.</p>

<p align="center"><img src="images/thread_mode_separate_graphs.png" width="712"
height="689"> </p>

<p align="center" class="figure">Figure 2. Thread Load Graph displaying
separate CPU graphs</p>

<p>In the separate graphs view, there is also a separate legend table created
for each graph. You can choose the table you want to view by using the tabs
above the table. </p>

<p><strong>Related references</strong></p>
<ul>
  <li><a href="main_view.htm">Analyzer View</a></li>
  <li><a href="investigator_menu.htm">Investigator menu</a></li>
  <li><a href="../profiler/GPP_trace.htm">Address/Thread Trace</a></li>
  <li><a href="binary_load.htm">Binary Load</a></li>
  <li><a href="function_load.htm">Function Load</a></li>
  <li><a href="function_calls.htm">Function Calls</a></li>
  <li><a href="threshold.htm">Threshold Limits for Traced Data</a></li>
</ul>

<div id="footer">
Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies). All rights
reserved. <br>
License: <a
href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a></div>
</body>
</html>