Skip to content

Commit

Permalink
Parallelize benchmarks
Browse files Browse the repository at this point in the history
  • Loading branch information
tamird authored and soheilhy committed Jul 15, 2016
1 parent fd01d3c commit df31d48
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 23 deletions.
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,5 @@ before_script:
- if [[ $TRAVIS_GO_VERSION == 1.6* ]]; then go tool vet --shadow .; fi

script:
- go test -v ./...
- go test -bench . -v ./...
- go test -race -bench . -v ./...
50 changes: 28 additions & 22 deletions bench_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,14 @@ func BenchmarkCMuxConnHTTP1(b *testing.B) {
wg.Add(b.N)

b.ResetTimer()
for i := 0; i < b.N; i++ {
c := &mockConn{
r: bytes.NewReader(benchHTTP1Payload),
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
wg.Add(1)
m.serve(&mockConn{
r: bytes.NewReader(benchHTTP1Payload),
}, donec, &wg)
}
m.serve(c, donec, &wg)
}
})
}

func BenchmarkCMuxConnHTTP2(b *testing.B) {
Expand All @@ -80,12 +82,14 @@ func BenchmarkCMuxConnHTTP2(b *testing.B) {
wg.Add(b.N)

b.ResetTimer()
for i := 0; i < b.N; i++ {
c := &mockConn{
r: bytes.NewReader(benchHTTP2Payload),
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
wg.Add(1)
m.serve(&mockConn{
r: bytes.NewReader(benchHTTP2Payload),
}, donec, &wg)
}
m.serve(c, donec, &wg)
}
})
}

func BenchmarkCMuxConnHTTP1n2(b *testing.B) {
Expand All @@ -98,15 +102,16 @@ func BenchmarkCMuxConnHTTP1n2(b *testing.B) {

donec := make(chan struct{})
var wg sync.WaitGroup
wg.Add(b.N)

b.ResetTimer()
for i := 0; i < b.N; i++ {
c := &mockConn{
r: bytes.NewReader(benchHTTP2Payload),
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
wg.Add(1)
m.serve(&mockConn{
r: bytes.NewReader(benchHTTP2Payload),
}, donec, &wg)
}
m.serve(c, donec, &wg)
}
})
}

func BenchmarkCMuxConnHTTP2n1(b *testing.B) {
Expand All @@ -119,13 +124,14 @@ func BenchmarkCMuxConnHTTP2n1(b *testing.B) {

donec := make(chan struct{})
var wg sync.WaitGroup
wg.Add(b.N)

b.ResetTimer()
for i := 0; i < b.N; i++ {
c := &mockConn{
r: bytes.NewReader(benchHTTP1Payload),
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
wg.Add(1)
m.serve(&mockConn{
r: bytes.NewReader(benchHTTP1Payload),
}, donec, &wg)
}
m.serve(c, donec, &wg)
}
})
}

0 comments on commit df31d48

Please sign in to comment.