diff options
author | Aliaksandr Valialkin <valyala@gmail.com> | 2015-11-17 08:48:33 +0200 |
---|---|---|
committer | Aliaksandr Valialkin <valyala@gmail.com> | 2015-11-17 08:48:33 +0200 |
commit | 93d859880678ccbefbda7bc346964687ed67e910 (patch) | |
tree | 42418ad404bee79ede75f43317137f5759b3e838 /header_timing_test.go | |
parent | Postpone headers' parsing until first access (diff) | |
download | fasthttp-93d859880678ccbefbda7bc346964687ed67e910.tar.gz fasthttp-93d859880678ccbefbda7bc346964687ed67e910.tar.bz2 fasthttp-93d859880678ccbefbda7bc346964687ed67e910.zip |
Run header benchmarks in parallel
Diffstat (limited to 'header_timing_test.go')
-rw-r--r-- | header_timing_test.go | 82 |
1 files changed, 45 insertions, 37 deletions
diff --git a/header_timing_test.go b/header_timing_test.go index 7011d17..b49a678 100644 --- a/header_timing_test.go +++ b/header_timing_test.go @@ -25,54 +25,62 @@ func (r *benchReadBuf) Read(p []byte) (int, error) { } func BenchmarkRequestHeaderRead(b *testing.B) { - var h RequestHeader - buf := &benchReadBuf{ - s: []byte("GET /foo/bar HTTP/1.1\r\nHost: foobar.com\r\nUser-Agent: aaa.bbb\r\nReferer: http://google.com/aaa/bbb\r\n\r\n"), - } - br := bufio.NewReader(buf) - for i := 0; i < b.N; i++ { - buf.n = 0 - br.Reset(buf) - if err := h.Read(br); err != nil { - b.Fatalf("unexpected error when reading header: %s", err) + b.RunParallel(func(pb *testing.PB) { + var h RequestHeader + buf := &benchReadBuf{ + s: []byte("GET /foo/bar HTTP/1.1\r\nHost: foobar.com\r\nUser-Agent: aaa.bbb\r\nReferer: http://google.com/aaa/bbb\r\n\r\n"), } - } + br := bufio.NewReader(buf) + for pb.Next() { + buf.n = 0 + br.Reset(buf) + if err := h.Read(br); err != nil { + b.Fatalf("unexpected error when reading header: %s", err) + } + } + }) } func BenchmarkResponseHeaderRead(b *testing.B) { - var h ResponseHeader - buf := &benchReadBuf{ - s: []byte("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nContent-Length: 1256\r\nServer: aaa 1/2.3\r\nTest: 1.2.3\r\n\r\n"), - } - br := bufio.NewReader(buf) - for i := 0; i < b.N; i++ { - buf.n = 0 - br.Reset(buf) - if err := h.Read(br); err != nil { - b.Fatalf("unexpected error when reading header: %s", err) + b.RunParallel(func(pb *testing.PB) { + var h ResponseHeader + buf := &benchReadBuf{ + s: []byte("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nContent-Length: 1256\r\nServer: aaa 1/2.3\r\nTest: 1.2.3\r\n\r\n"), } - } + br := bufio.NewReader(buf) + for pb.Next() { + buf.n = 0 + br.Reset(buf) + if err := h.Read(br); err != nil { + b.Fatalf("unexpected error when reading header: %s", err) + } + } + }) } func BenchmarkRequestHeaderPeekBytesCanonical(b *testing.B) { - var h RequestHeader - h.SetBytesV("Host", strFoobar) - for i := 0; i < b.N; i++ { - v := h.PeekBytes(strHost) - if !bytes.Equal(v, strFoobar) { - b.Fatalf("unexpected result: %q. Expected %q", v, strFoobar) + b.RunParallel(func(pb *testing.PB) { + var h RequestHeader + h.SetBytesV("Host", strFoobar) + for pb.Next() { + v := h.PeekBytes(strHost) + if !bytes.Equal(v, strFoobar) { + b.Fatalf("unexpected result: %q. Expected %q", v, strFoobar) + } } - } + }) } func BenchmarkRequestHeaderPeekBytesNonCanonical(b *testing.B) { - var h RequestHeader - h.SetBytesV("Host", strFoobar) - hostBytes := []byte("HOST") - for i := 0; i < b.N; i++ { - v := h.PeekBytes(hostBytes) - if !bytes.Equal(v, strFoobar) { - b.Fatalf("unexpected result: %q. Expected %q", v, strFoobar) + b.RunParallel(func(pb *testing.PB) { + var h RequestHeader + h.SetBytesV("Host", strFoobar) + hostBytes := []byte("HOST") + for pb.Next() { + v := h.PeekBytes(hostBytes) + if !bytes.Equal(v, strFoobar) { + b.Fatalf("unexpected result: %q. Expected %q", v, strFoobar) + } } - } + }) } |