<!DOCTYPE html>
<html>
  <head>
    <title>Performance Result Comparison</title>
    <style type="text/css">
#header h1 {
  display: inline;
}
#search {
  padding: 1em .5em;
  width: 100%;
}
input[type="text"] {
  font-size: 100%;
}
#results {
  border-top: 1px solid black;
}
tr.diff td {
  font-size: 80%;
  font-family: sans-serif;
  vertical-align: top;
}
th.label {
  text-align: left;
  vertical-align: top;
}
td.count {
  text-align: right;
}
#labels {
  float: left;
  margin-right: 1em;
  border-right: 1px solid black;
  border-collapse: collapse;
  vertical-align: top;
}
#labels tbody {
  border-collapse: collapse;
  border-bottom: 1px solid black;
}
#labels > tbody > tr:last-child > th, #labels > tbody > tr:last-child > td {
  padding-bottom: 1em;
}
#labels tbody tr:first-child th, #benchstat {
  padding-top: 1em;
}
#labels tbody.diff tr:first-child th {
  padding-top: 1em;
  border-collapse: collapse;
  border-top: 1px solid black;
}
#labels .diff {
  padding-bottom: 1em;
}
#labels .diff table td, #labels .diff .query {
  max-width: 20em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.benchstat tr.configs th {
  max-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.benchstat { border-collapse: collapse; }
.benchstat th:nth-child(1) { text-align: left; }
.benchstat tbody td:nth-child(1n+2):not(.note) { text-align: right; padding: 0em 1em; }
.benchstat tr:not(.configs) th { border-top: 1px solid #666; border-bottom: 1px solid #ccc; }
.benchstat .nodelta { text-align: center !important; }
.benchstat .better td.delta { font-weight: bold; }
.benchstat .worse td.delta { font-weight: bold; color: #c00; }

    </style>
  </head>
  <body>
    <div id="header">
      <h1>Go Performance Dashboard</h1>
      <a href="/">about</a>
    </div>
    <div id="search">
      <form action="/search">
        <input type="text" name="q" value="{{.Q}}" size="120">
        <input type="submit" value="Search">
      </form>
    </div>
    <div id="results">
      {{if not .Q}}
        <p>The Go Performance Dashboard provides a centralized
          resource for sharing and analyzing benchmark results. To get
          started, upload benchmark results using
          <code>go get -u golang.org/x/perf/cmd/benchsave</code>
          and
          <code>benchsave old.txt new.txt</code>
          or upload via the web at
          <a href="https://perfdata-dot-golang-org.appspot.com/upload">https://perfdata-dot-golang-org.appspot.com/upload</a>.</p>
      {{else}}
        {{with .Error}}
        <p>{{.}}</p>
        {{else}}
          <table id="labels">
            {{with .CommonLabels}}
              <tbody>
                <tr>
                  <th>label</th><th>common value</th>
                </tr>
                {{range $label, $value := .}}
                  <tr>
                    <th class="label">{{$label}}</th><td>{{$value}}</td>
                  </tr>
                {{end}}
              </tbody>
            {{end}}
            <tbody class="diff">
              <tr>
                <th>label</th>
                <th>values</th>
              </tr>
              {{range $label, $exists := .Labels}}
              <tr class="diff">
                <th class="label">{{$label}}</th>
                <td>
                  {{range $index, $group := $.Groups}}
                  <div class="query">{{$group.Q}}:</div>
                  <table>
                    {{with index $group.LabelValues $label}}
                      {{range .TopN 4}}
                        <tr>
                          <td class="count">
                            {{.Count}}
                          </td>
                          <td>
                            {{if eq .Value ""}}
                              missing
                            {{else if eq .Value "…"}}
                              {{.Value}}
                            {{else}}
                              <a href="/search?q={{addToQuery $.Q (printf "%s:%s" $label .Value)}}">
                                {{printf "%q" .Value}}
                              </a>
                            {{end}}
                          </td>
                        </tr>
                      {{end}}
                    {{end}}
                  </table>
                {{end}}
                </td>
              </tr>
              {{end}}
              </tbody>
          </table>
          <div id="benchstat">
            {{.Benchstat}}
          </div>
        {{end}}
      {{end}}
    </div>
  </body>
</html>
