Skip to content

Commit 561ac01

Browse files
authored
Merge pull request #205 from FZambia/compression_benchmarks
benchmarks for write with compression enabled/disabled
2 parents 1763434 + 34e0535 commit 561ac01

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

compression_test.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ package websocket
22

33
import (
44
"bytes"
5+
"fmt"
56
"io"
7+
"io/ioutil"
68
"testing"
79
)
810

@@ -29,3 +31,36 @@ func TestTruncWriter(t *testing.T) {
2931
}
3032
}
3133
}
34+
35+
func textMessages(num int) [][]byte {
36+
messages := make([][]byte, num)
37+
for i := 0; i < num; i++ {
38+
msg := fmt.Sprintf("planet: %d, country: %d, city: %d, street: %d", i, i, i, i)
39+
messages[i] = []byte(msg)
40+
}
41+
return messages
42+
}
43+
44+
func BenchmarkWriteNoCompression(b *testing.B) {
45+
w := ioutil.Discard
46+
c := newConn(fakeNetConn{Reader: nil, Writer: w}, false, 1024, 1024)
47+
messages := textMessages(100)
48+
b.ResetTimer()
49+
for i := 0; i < b.N; i++ {
50+
c.WriteMessage(TextMessage, messages[i%len(messages)])
51+
}
52+
b.ReportAllocs()
53+
}
54+
55+
func BenchmarkWriteWithCompression(b *testing.B) {
56+
w := ioutil.Discard
57+
c := newConn(fakeNetConn{Reader: nil, Writer: w}, false, 1024, 1024)
58+
messages := textMessages(100)
59+
c.enableWriteCompression = true
60+
c.newCompressionWriter = compressNoContextTakeover
61+
b.ResetTimer()
62+
for i := 0; i < b.N; i++ {
63+
c.WriteMessage(TextMessage, messages[i%len(messages)])
64+
}
65+
b.ReportAllocs()
66+
}

0 commit comments

Comments
 (0)