aboutsummaryrefslogtreecommitdiff
path: root/header_timing_test.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-17 08:48:33 +0200
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-17 08:48:33 +0200
commit93d859880678ccbefbda7bc346964687ed67e910 (patch)
tree42418ad404bee79ede75f43317137f5759b3e838 /header_timing_test.go
parentPostpone headers' parsing until first access (diff)
downloadfasthttp-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.go82
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)
+ }
}
- }
+ })
}