garbage: used a fixed copy of the net/http source

Currently garbage parses whatever source is in $GOROOT/src/net/http,
but this means that the expected performance of the benchmark changes
over time as net/http changes. Indeed, net/http has nearly doubled in
size between Go 1.5 and current master, and this can be seen in the
performance of the benchmark:

               Build version
net/http   go1.5.2     ab74f59
go1.5.2   10.8 ms/op  10.1 ms/op
ab74f59   19.9 ms/op  18.5 ms/op

If you compare garbage built at go1.5.2, running with a go1.5.2 source
tree against garbage built at ab74f59, running with an ab74f59 source
tree, it will appear that the benchmark has slowed down by 71%. But,
in fact, if you hold the source tree constant, it has sped up by 7%.

Fix this by bundling a static snapshot of net/http, taken at git tag
go1.5.2, in to the garbage benchmark and parsing that instead of
whatever's in GOROOT.

Change-Id: If86b67f37ca33d275d4bb7168ee8cc5f5227ee6f
Reviewed-by: Brad Fitzpatrick <>
2 files changed