<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 slaves 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 slaves 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 slaves are down and their results are missing from the report: <b>build99-b5 build100-b5</b><br/>
    
    
      <br/><b>Note:</b> The following slaves 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>
