analysis: add readme text on empty search

Change-Id: I1d0d574a78559f08125d8aa03ea4f6ab7912e28c
Reviewed-on: https://go-review.googlesource.com/36028
Reviewed-by: Russ Cox <rsc@golang.org>
diff --git a/analysis/app/app.go b/analysis/app/app.go
index 9e362c1..d8cb399 100644
--- a/analysis/app/app.go
+++ b/analysis/app/app.go
@@ -20,6 +20,7 @@
 
 // RegisterOnMux registers the app's URLs on mux.
 func (a *App) RegisterOnMux(mux *http.ServeMux) {
+	mux.HandleFunc("/", a.index)
 	mux.HandleFunc("/search", a.search)
 	mux.HandleFunc("/compare", a.compare)
 }
@@ -37,3 +38,8 @@
 	//q := r.Form.Get("q")
 	a.compare(w, r)
 }
+
+// index redirects / to /search.
+func (a *App) index(w http.ResponseWriter, r *http.Request) {
+	http.Redirect(w, r, "/search", http.StatusSeeOther)
+}
diff --git a/analysis/app/compare.go b/analysis/app/compare.go
index 0ed01bd..93b8721 100644
--- a/analysis/app/compare.go
+++ b/analysis/app/compare.go
@@ -222,6 +222,10 @@
 }
 
 func (a *App) compareQuery(q string) *compareData {
+	if len(q) == 0 {
+		return &compareData{}
+	}
+
 	// Parse query
 	prefix, queries := parseQueryString(q)
 
diff --git a/analysis/appengine/template/compare.html b/analysis/appengine/template/compare.html
index afe1cea..6ba7c28 100644
--- a/analysis/appengine/template/compare.html
+++ b/analysis/appengine/template/compare.html
@@ -89,65 +89,76 @@
       </form>
     </div>
     <div id="results">
-      {{with .Error}}
-      <p>{{.}}</p>
+      {{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}}
-        <table id="labels">
-          {{with .CommonLabels}}
-            <tbody>
-              <tr>
-                <th>label</th><th>common value</th>
-              </tr>
-              {{range $label, $value := .}}
+        {{with .Error}}
+        <p>{{.}}</p>
+        {{else}}
+          <table id="labels">
+            {{with .CommonLabels}}
+              <tbody>
                 <tr>
-                  <th class="label">{{$label}}</th><td>{{$value}}</td>
+                  <th>label</th><th>common value</th>
                 </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>
+                {{range $label, $value := .}}
+                  <tr>
+                    <th class="label">{{$label}}</th><td>{{$value}}</td>
+                  </tr>
+                {{end}}
+              </tbody>
             {{end}}
-            </tbody>
-        </table>
-        <div id="benchstat">
-          {{.Benchstat}}
-        </div>
+            <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>
+    </div>
   </body>
 </html>