From: Brad Fitzpatrick Date: Fri, 27 May 2011 23:43:02 +0000 (-0700) Subject: http: client+server benchmark X-Git-Tag: weekly.2011-06-02~78 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=399a311e64aa7bc5282ce1489a53f1f25c2edeb0;p=gostls13.git http: client+server benchmark baseline runs: (6g, gopher.mtv) http_test.BenchmarkClientServer 5000 412588 ns/op http_test.BenchmarkClientServer 5000 403346 ns/op http_test.BenchmarkClientServer 5000 413936 ns/op http_test.BenchmarkClientServer 5000 410287 ns/op http_test.BenchmarkClientServer 5000 388037 ns/op http_test.BenchmarkClientServer 5000 405545 ns/op http_test.BenchmarkClientServer 5000 405179 ns/op http_test.BenchmarkClientServer 5000 413827 ns/op http_test.BenchmarkClientServer 5000 392723 ns/op R=golang-dev, r CC=golang-dev https://golang.org/cl/4515155 --- diff --git a/src/pkg/http/serve_test.go b/src/pkg/http/serve_test.go index 120a026056..0acec226d5 100644 --- a/src/pkg/http/serve_test.go +++ b/src/pkg/http/serve_test.go @@ -754,3 +754,29 @@ func TestZeroLengthPostAndResponse(t *testing.T) { } } } + +func BenchmarkClientServer(b *testing.B) { + b.StopTimer() + ts := httptest.NewServer(HandlerFunc(func(rw ResponseWriter, r *Request) { + fmt.Fprintf(rw, "Hello world.\n") + })) + defer ts.Close() + b.StartTimer() + + for i := 0; i < b.N; i++ { + res, err := Get(ts.URL) + if err != nil { + panic("Get: " + err.String()) + } + all, err := ioutil.ReadAll(res.Body) + if err != nil { + panic("ReadAll: " + err.String()) + } + body := string(all) + if body != "Hello world.\n" { + panic("Got body: " + body) + } + } + + b.StopTimer() +}