<html>
  <head>
    <title>Results of Cluster Telemetry Tryserver Run</title>
    <style type="text/css">
  <!--
    td.belowthreshold { background-color:#8FDF5F; }
    td.abovethreshold { background-color:#ED4337; }
  -->
</style>

  </head>

  <body>
    <h2>Results of Cluster Telemetry Tryserver Run</h2>
    Run requester: superman@krypton.com
    <br/>
    Run description: E2EComparerWithDiscardOutliers
    <br/>
    This report was created on 2014-05-19 16:50 UTC
    <br/>
    <br/>
    The run was done on Android workers using the Mobile10k page set
    <br/>
    The run was done using Chromium commit hash <a href='https://chromium.googlesource.com/chromium/src/+show/abcdefg1234567'>abcdefg</a> and Skia commit hash <a href='https://skia.googlesource.com/skia/+show/tuvwxyz1234567'>tuvwxyz</a>
    <br/>
    The specified patch(es) are: <a href='http://chromium-patch.com'>Chromium</a>/<a href='http://skia-patch.com'>Skia</a> (if no patch is specified the page will be empty)
    <br/>
    Browser arguments for the nopatch run: "--test=1"
    <br/>
    Browser arguments for the withpatch run: "--test=2"
    <br/>
    <br/>
    The raw CSVs used to create the below tables are here: <a href='http://raw-csv-nopatch.com'>nopatch</a>/<a href='http://raw-csv-withpatch.com'>withpatch</a>
    <br/>
    Read <a href="https://docs.google.com/a/chromium.org/document/d/1GhqosQcwsy6F-eBAmFn_ITDF7_Iv_rY9FhCKwAnk9qQ/edit?pli=1#heading=h.lgvqzgu7bc4d">this</a> for an explanation of CT's accuracy of results.
    <br/>
    
      <br/><b>Note:</b> The following workers are down and their results are missing from the report: <b>build1-b5 build10-b5</b><br/>
    
    
      <br/><b>Note:</b> Android devices in the following workers are down and their results are missing from the report: <b>build99-b5 build100-b5</b><br/>
    
    
      <br/><b>Note:</b> The following workers failed to report their results:
          
            <a href="https://chrome-swarming.appspot.com/tasklist?l=500&amp;f=runid:testing&amp;f=name:perf_task_1">task1</a>
          
            <a href="https://chrome-swarming.appspot.com/tasklist?l=500&amp;f=runid:testing&amp;f=name:perf_task_3">task3</a>
          
            <a href="https://chrome-swarming.appspot.com/tasklist?l=500&amp;f=runid:testing&amp;f=name:perf_task_100">task100</a>
          
      <br/>
    
    <br/>
    Each pageset was repeated: 3 times
    <br/>
    Percentage difference threshold used: 10.0%
    <br/>
    Outliers discarded from top and bottom: 12.5%
    <br/>
    Fieldnames displayed only if they were outputted by minimum 1 webpages.
    <br/><br/>
    Click on a fieldname to see the webpages breakdown.
    <br/><br/><br/>

    
    <table border="1" cellpadding="5">
      <tr bgcolor="#CCCCFF">
        <th>Fieldname</th>
        <th>#Webpages</th>
        <th>Total</th>
        <th>Total with Patch</th>
        <th>Percentage Change</th>
        <th>Percentage Difference</th>
      </tr>
      
        <tr>
          <td><a href='fieldname1.html'>field3</a></td>
          <td>6</td>
          <td>18</td>
          <td>28</td>
          <td class="abovethreshold" >55.556%</td>
          <td class="abovethreshold" >43.478%</td>
        </tr>
      
    </table>
    
  </body>
</html>
