sweet: merge tile38 benchmarks into one benchmark with all 3 queries

This change merges the 3 Tile38*Request benchmarks into Tile38QueryLoad.
The purpose of this change is three-fold:
- The existing benchmarks were more microbenchmarks since they really
  just hammered a single codepath. Here we at least hammer 3, which is
  nice for e.g. PGO experimentation.
- The Tile38 server is now only started up once for a benchmark run.
  Previously it was started up 3 times, each time taking around 30
  seconds to load state from disk, causing benchmarking to be really
- This change lets us afford to run a single Tile38 server for longer,
  which should help reduce GC-related noise by adding more cycles.

This change increases the number of benchmark iterations from 20*50000
to 40*50000, a 2x increase. While intuitively that seems like it
should make the benchmark only slightly faster, since we're only
spinning up one server for all those iterations, we actually save a lot
more time.

20*50000 iterations was usually ~30 seconds. It took ~30 seconds to
start up the server. For 1 full run it took 3 minutes.

After this change, starting up the server still takes ~30 seconds, but
we only do it once, and the iterations itself only take ~60 seconds.
Now, 1 full run only takes 1 minute 30 seconds, or half as long.

For golang/go#59672.

Change-Id: I5694737e8dde977cbc6013f1d879d0a742a6c895
Reviewed-on: https://go-review.googlesource.com/c/benchmarks/+/485375
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
1 file changed