| <!DOCTYPE html> |
| <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> |