<!DOCTYPE html>
<!--
 Copyright 2022 The Go Authors. All rights reserved.
 Use of this source code is governed by a BSD-style
 license that can be found in the LICENSE file.
-->

<html>
  <head>
    <meta charset="utf-8">
    <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 $cl := .CommonLabels}}
              <tbody>
                <tr>
                  <th>label</th><th>common value</th>
                </tr>
                {{range $label, $value := .}}
                  <tr>
                    <th class="label">{{$label}}</th><td>{{with $href := linkify $cl $label}}<a href="{{$href}}" rel="nofollow">{{$value}}</a>{{else}}{{$value}}{{end}}</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>
