Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
175
pkg/kafka/compression_test.go
Normal file
175
pkg/kafka/compression_test.go
Normal file
@@ -0,0 +1,175 @@
|
||||
package kafka_test
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"compress/gzip"
|
||||
"io"
|
||||
"testing"
|
||||
|
||||
"github.com/golang/snappy"
|
||||
)
|
||||
|
||||
const totalPayloadSize = 10
|
||||
|
||||
func tryClose(w io.Writer) error {
|
||||
if w, ok := w.(io.Closer); ok {
|
||||
return w.Close()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func BenchmarkNoCompressionWrite(b *testing.B) {
|
||||
w := io.Writer(io.Discard)
|
||||
//payload := []byte("yes this is 25 bytes long")
|
||||
payload := make([]byte, 10000)
|
||||
|
||||
b.ResetTimer()
|
||||
for i := 0; i < 1024*1024*totalPayloadSize/4; i++ {
|
||||
_, err := w.Write(payload)
|
||||
if err != nil {
|
||||
b.Error("error writing file")
|
||||
}
|
||||
}
|
||||
|
||||
err := tryClose(w)
|
||||
if err != nil {
|
||||
b.Error("error closing file")
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkGZipCompressionWrite(b *testing.B) {
|
||||
w := gzip.NewWriter(io.Discard)
|
||||
//payload := []byte("yes this is 25 bytes long")
|
||||
payload := make([]byte, 10000)
|
||||
|
||||
b.ResetTimer()
|
||||
for i := 0; i < 1024*1024*totalPayloadSize/4; i++ {
|
||||
_, err := w.Write(payload)
|
||||
if err != nil {
|
||||
b.Error("error writing file")
|
||||
}
|
||||
}
|
||||
|
||||
err := w.Close()
|
||||
if err != nil {
|
||||
b.Error("error closing file")
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkSnappyCompressionWrite(b *testing.B) {
|
||||
w := snappy.NewWriter(io.Discard)
|
||||
//payload := []byte("yes this is 25 bytes long")
|
||||
payload := make([]byte, 10000)
|
||||
|
||||
b.ResetTimer()
|
||||
for i := 0; i < 1024*1024*totalPayloadSize/4; i++ {
|
||||
_, err := w.Write(payload)
|
||||
if err != nil {
|
||||
b.Error("error writing file")
|
||||
}
|
||||
}
|
||||
|
||||
err := w.Close()
|
||||
if err != nil {
|
||||
b.Error("error closing file")
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkNoCompressionRead(b *testing.B) {
|
||||
var buf bytes.Buffer
|
||||
|
||||
w := io.Writer(&buf)
|
||||
//payload := []byte("yes this is 25 bytes long")
|
||||
payload := make([]byte, 10000)
|
||||
|
||||
for i := 0; i < 1024*1024*totalPayloadSize/4; i++ {
|
||||
_, err := w.Write(payload)
|
||||
if err != nil {
|
||||
b.Error("error writing file")
|
||||
}
|
||||
}
|
||||
|
||||
err := tryClose(w)
|
||||
if err != nil {
|
||||
b.Error("error closing file")
|
||||
}
|
||||
|
||||
//r, err := io.NewReader(&buf)
|
||||
r := bytes.NewReader(payload)
|
||||
if err != nil {
|
||||
b.Error("error opening file")
|
||||
}
|
||||
|
||||
b.ResetTimer()
|
||||
if _, err := io.Copy(io.Discard, r); err != nil {
|
||||
b.Error("error reading file")
|
||||
}
|
||||
|
||||
// if err := r.Close(); err != nil {
|
||||
// b.Error("error closing file")
|
||||
// }
|
||||
}
|
||||
|
||||
func BenchmarkGZipCompressionRead(b *testing.B) {
|
||||
var buf bytes.Buffer
|
||||
|
||||
w := gzip.NewWriter(&buf)
|
||||
//payload := []byte("yes this is 25 bytes long")
|
||||
payload := make([]byte, 10000)
|
||||
|
||||
for i := 0; i < 1024*1024*totalPayloadSize/4; i++ {
|
||||
_, err := w.Write(payload)
|
||||
if err != nil {
|
||||
b.Error("error writing file")
|
||||
}
|
||||
}
|
||||
|
||||
err := w.Close()
|
||||
if err != nil {
|
||||
b.Error("error closing file")
|
||||
}
|
||||
|
||||
r, err := gzip.NewReader(&buf)
|
||||
if err != nil {
|
||||
b.Error("error opening file")
|
||||
}
|
||||
|
||||
b.ResetTimer()
|
||||
if _, err := io.Copy(io.Discard, r); err != nil {
|
||||
b.Error("error reading file")
|
||||
}
|
||||
|
||||
if err := r.Close(); err != nil {
|
||||
b.Error("error closing file")
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkSnappyCompressionRead(b *testing.B) {
|
||||
var buf bytes.Buffer
|
||||
|
||||
w := snappy.NewWriter(&buf)
|
||||
//payload := []byte("yes this is 25 bytes long")
|
||||
payload := make([]byte, 10000)
|
||||
|
||||
for i := 0; i < 1024*1024*totalPayloadSize/4; i++ {
|
||||
_, err := w.Write(payload)
|
||||
if err != nil {
|
||||
b.Error("error writing file")
|
||||
}
|
||||
}
|
||||
|
||||
err := w.Close()
|
||||
if err != nil {
|
||||
b.Error("error closing file")
|
||||
}
|
||||
|
||||
r := snappy.NewReader(&buf)
|
||||
if err != nil {
|
||||
b.Error("error opening file")
|
||||
}
|
||||
|
||||
b.ResetTimer()
|
||||
if _, err := io.Copy(io.Discard, r); err != nil {
|
||||
b.Error("error reading file")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user