diff --git a/compression_test.go b/compression_test.go index aecb23f..afa7de7 100644 --- a/compression_test.go +++ b/compression_test.go @@ -79,6 +79,76 @@ func BenchmarkWriteWithCompressionOfContextTakeover(b *testing.B) { b.ReportAllocs() } +func BenchmarkCallWriteWithCompressionOfContextTakeover(b *testing.B) { + w := ioutil.Discard + c := newConn(fakeNetConn{Reader: nil, Writer: w}, false, 1024, 1024) + // messages := textMessages(100) + c.enableWriteCompression = true + c.contextTakeover = true + c.newCompressionWriter = compressContextTakeover + mw := &messageWriter{ + c: c, + frameType: 2, + pos: maxFrameHeaderSize, + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + // c.txDict = &messages[i%len(messages)] + c.newCompressionWriter(mw, 2, &[]byte{}) + } + b.ReportAllocs() +} + +func BenchmarkCallWriteWithCompression(b *testing.B) { + w := ioutil.Discard + c := newConn(fakeNetConn{Reader: nil, Writer: w}, false, 1024, 1024) + // messages := textMessages(100) + c.enableWriteCompression = true + c.newCompressionWriter = compressNoContextTakeover + mw := &messageWriter{ + c: c, + frameType: 2, + pos: maxFrameHeaderSize, + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + // c.txDict = &messages[i%len(messages)] + c.newCompressionWriter(mw, 2, nil) + } + b.ReportAllocs() +} + +func BenchmarkReadWithCompression(b *testing.B) { + w := ioutil.Discard + c := newConn(fakeNetConn{Reader: nil, Writer: w}, false, 1024, 1024) + c.enableWriteCompression = true + c.newDecompressionReader = decompressNoContextTakeover + messages := textMessages(100) + b.ResetTimer() + for i := 0; i < b.N; i++ { + r := bytes.NewReader(messages[i%len(messages)]) + reader := c.newDecompressionReader(r, nil) + ioutil.ReadAll(reader) + } + b.ReportAllocs() +} + +func BenchmarkReadWithCompressionOfContextTakeover(b *testing.B) { + w := ioutil.Discard + c := newConn(fakeNetConn{Reader: nil, Writer: w}, false, 1024, 1024) + c.enableWriteCompression = true + c.contextTakeover = true + c.newDecompressionReader = decompressContextTakeover + messages := textMessages(100) + b.ResetTimer() + for i := 0; i < b.N; i++ { + r := bytes.NewReader(messages[i%len(messages)]) + reader := c.newDecompressionReader(r, c.rxDict) + ioutil.ReadAll(reader) + } + b.ReportAllocs() +} + func TestValidCompressionLevel(t *testing.T) { c := newConn(fakeNetConn{}, false, 1024, 1024) for _, level := range []int{minCompressionLevel - 1, maxCompressionLevel + 1} {