<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">p, table, td, th {  font-family: arial, helvetica, geneva; font-size: 10pt}
pre {  font-family: "Courier New", Courier, mono; font-size: 10pt}
h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px}
code {  font-family: "Courier New", Courier, mono; font-size: 10pt}
sup {  font-family: arial,helvetica,geneva; font-size: 10px}
h3 {  font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}
li {  font-family: arial, helvetica, geneva; font-size: 10pt}
h1 {  font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}
body {  font-family: arial, helvetica, geneva; font-size: 10pt; clip:   rect(   ); margin-top: 5mm; margin-left: 3mm}
.indextop { font-size: x-large;; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold}
.indexsub { font-size: xx-small;; font-family: Arial, Helvetica, sans-serif; color: #8080FF}
</style>
<body>
<p>
Since 3.5, it's possible to see results in fingerprints with three different
kinds of scale:
<ul>
<li><a href="#percent">Percentage scale</a></li>
<li><a href="#time">Time linear scale</a></li>
<li><a href="#time">Time logarithmic scale</a></li>
<li><a href="#tips">Tips for time scales</a></li>
</ul>
</p>
<h1><a name="percent">Percentage scale</h1>
<p>The X axis represents percentage of the variation vs. the given baseline</p>
<p>This is the way fingerprints were displayed since the beginning:
<p><img src="images/percentage.png">
<ul>
<li>Red bar means a regression, even if it's less than the 10% threshold.</li>
<li>Green bar means an improvement</li>
<li>Gray bar means an 'explained' regression.</li>
</ul>
</p>
<h1><a name="time">Linear and logarithmic time scales</h1>
<p>For these scales, the X axis represents the duration time of the test.<br>
The colors meanings are the same than for the percentage scale.<br>
These kind of graphs give a better idea of time duration for each test.</p>
<p>Typically use linear scale if you want to see the tests relativeness for all the component tests:</p>
<p><img src="images/linear.png">
<p>But the logarithmic scale is more appropriate when there are a strong duration differences between tests, hence makes short duration tests easier to survey:</p>
<p><img src="images/log.png">
<p>Each test have two bars: the former is white and shows the baseline result, the latter is colored (red, green or gray) and shows the current build result.<br>
The variation between the baseline and the build is displayed as a percentage on top of both bars.</p>
<h1><a name="tips">Tips for time scales</h1>
<p>Tips are almost the same for linear and logarithmic scales:</p>
<table border="0">
  <tr>
    <td valign="top"><img src="images/light.gif"></td>
    <td><b>Flying over a bar displays its time value<b>:</td></tr>
  </tr>
  <tr>
    <td></td>
    <td><img src="images/help_time_baseline.png"></td>
  </tr>
  <tr>
    <td></td>
    <td><img src="images/help_time_current.png"></td>
  </tr>
  <tr><td><br></td></tr>
  <tr>
    <td valign="top"><img src="images/light.gif"></td>
    <td><b>For <u>linear scale only</u>, when the error on the time result is noticeable,
		then the measurement uncertainty is shown in yellow at the end of the bar<b>:</td></tr>
  </tr>
  <tr>
    <td></td>
    <td><img src="images/help_time_error.png"></td>
  </tr>
  <tr><td><br></td></tr>
  <tr>
    <td valign="top"><img src="images/light.gif"></td>
    <td><b>A performance regression may sometimes have a known good reason</b>.<br>
    In this case, the current build bar is grayed and flying over it also shows the given explanation:</td></tr>
  </tr>
  <tr>
    <td></td>
    <td><img src="images/help_explained_regression.png"></td>
  </tr>
  <tr><td><br></td></tr>
  <tr>
    <td valign="top"><img src="images/light.gif"></td>
    <td><b>Test result may have big error which can make the test result not fully reliable</b>.<br>
  In this case, a warning icon is shown after the variation value and flying over it gives the offending error value:</td></tr>
  </tr>
  <tr>
    <td></td>
    <td><img src="images/help_error_warning.png"></td>
  </tr>
  <tr><td><br></td></tr>
  <tr>
    <td valign="top"><img src="images/light.gif"></td>
    <td><b>Test may have no result for the used baseline, hence the first available build is used as a reference</b>.<br>
  In this case, a warning icon is shown after the scenario title and flying over it gives the build ID used to compute the variation:</td></tr>
  </tr>
  <tr>
    <td></td>
    <td><img src="images/help_no_baseline.png"></td>
  </tr>
</table>
</body>
</html>
