framer_bench_test.go 739 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package gocql
  2. import (
  3. "compress/gzip"
  4. "io/ioutil"
  5. "os"
  6. "testing"
  7. )
  8. func readGzipData(path string) ([]byte, error) {
  9. f, err := os.Open(path)
  10. if err != nil {
  11. return nil, err
  12. }
  13. defer f.Close()
  14. r, err := gzip.NewReader(f)
  15. if err != nil {
  16. return nil, err
  17. }
  18. defer r.Close()
  19. return ioutil.ReadAll(r)
  20. }
  21. func BenchmarkParseRowsFrame(b *testing.B) {
  22. data, err := readGzipData("testdata/frames/bench_parse_result.gz")
  23. if err != nil {
  24. b.Fatal(err)
  25. }
  26. b.ResetTimer()
  27. for i := 0; i < b.N; i++ {
  28. framer := &framer{
  29. header: &frameHeader{
  30. version: protoVersion4 | 0x80,
  31. op: opResult,
  32. length: len(data),
  33. },
  34. rbuf: data,
  35. }
  36. _, err = framer.parseFrame()
  37. if err != nil {
  38. b.Fatal(err)
  39. }
  40. }
  41. }