Jelajahi Sumber

add benchmark for result parsing

Chris Bannister 10 tahun lalu
induk
melakukan
ef18c2e213
2 mengubah file dengan 48 tambahan dan 0 penghapusan
  1. 48 0
      framer_bench_test.go
  2. TEMPAT SAMPAH
      testdata/frames/bench_parse_result.gz

+ 48 - 0
framer_bench_test.go

@@ -0,0 +1,48 @@
+package gocql
+
+import (
+	"compress/gzip"
+	"io/ioutil"
+	"os"
+	"testing"
+)
+
+func readGzipData(path string) ([]byte, error) {
+	f, err := os.Open(path)
+	if err != nil {
+		return nil, err
+	}
+	defer f.Close()
+
+	r, err := gzip.NewReader(f)
+	if err != nil {
+		return nil, err
+	}
+	defer r.Close()
+
+	return ioutil.ReadAll(r)
+}
+
+func BenchmarkParseRowsFrame(b *testing.B) {
+	data, err := readGzipData("testdata/frames/bench_parse_result.gz")
+	if err != nil {
+		b.Fatal(err)
+	}
+
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		framer := &framer{
+			header: &frameHeader{
+				version: protoVersion4 | 0x80,
+				op:      opResult,
+				length:  len(data),
+			},
+			rbuf: data,
+		}
+
+		_, err = framer.parseFrame()
+		if err != nil {
+			b.Fatal(err)
+		}
+	}
+}

TEMPAT SAMPAH
testdata/frames/bench_parse_result.gz