MCPcopy
hub / github.com/segmentio/kafka-go / BenchmarkResponse

Function BenchmarkResponse

protocol/prototest/response.go:44–95  ·  protocol/prototest/response.go::BenchmarkResponse
(b *testing.B, version int16, msg protocol.Message)

Source from the content-addressed store, hash-verified

42}
43
44func BenchmarkResponse(b *testing.B, version int16, msg protocol.Message) {
45 reset := load(msg)
46
47 b.Run(fmt.Sprintf("v%d", version), func(b *testing.B) {
48 apiKey := msg.ApiKey()
49 buffer := &bytes.Buffer{}
50 buffer.Grow(1024)
51
52 b.Run("read", func(b *testing.B) {
53 w := io.Writer(buffer)
54
55 if err := protocol.WriteResponse(w, version, 1234, msg); err != nil {
56 b.Fatal(err)
57 }
58
59 reset()
60
61 p := buffer.Bytes()
62 x := bytes.NewReader(p)
63 r := bufio.NewReader(x)
64
65 for i := 0; i < b.N; i++ {
66 _, res, err := protocol.ReadResponse(r, apiKey, version)
67 if err != nil {
68 b.Fatal(err)
69 }
70 closeMessage(res)
71 x.Reset(p)
72 r.Reset(x)
73 }
74
75 b.SetBytes(int64(len(p)))
76 buffer.Reset()
77 })
78
79 b.Run("write", func(b *testing.B) {
80 w := io.Writer(buffer)
81 n := int64(0)
82
83 for i := 0; i < b.N; i++ {
84 if err := protocol.WriteResponse(w, version, 1234, msg); err != nil {
85 b.Fatal(err)
86 }
87 reset()
88 n = int64(buffer.Len())
89 buffer.Reset()
90 }
91
92 b.SetBytes(n)
93 })
94 })
95}

Callers 2

BenchmarkFetchResponseFunction · 0.92

Calls 9

WriteResponseFunction · 0.92
ReadResponseFunction · 0.92
loadFunction · 0.85
closeMessageFunction · 0.85
ApiKeyMethod · 0.65
BytesMethod · 0.65
NewReaderMethod · 0.65
LenMethod · 0.65
ResetMethod · 0.45

Tested by 2

BenchmarkFetchResponseFunction · 0.74