1414package expfmt
1515
1616import (
17+ "bufio"
1718 "bytes"
1819 "compress/gzip"
1920 "errors"
2021 "io"
2122 "os"
2223 "testing"
2324
24- "github.com/matttproud/golang_protobuf_extensions/v2/pbutil "
25+ "google.golang.org/protobuf/encoding/protodelim "
2526
2627 dto "github.com/prometheus/client_model/go"
2728)
@@ -98,10 +99,13 @@ func BenchmarkParseProto(b *testing.B) {
9899
99100 for i := 0 ; i < b .N ; i ++ {
100101 family := & dto.MetricFamily {}
101- in := bytes .NewReader (data )
102+ in := bufio .NewReader (bytes .NewReader (data ))
103+ unmarshaler := protodelim.UnmarshalOptions {
104+ MaxSize : - 1 ,
105+ }
102106 for {
103107 family .Reset ()
104- if _ , err := pbutil . ReadDelimited (in , family ); err != nil {
108+ if err := unmarshaler . UnmarshalFrom (in , family ); err != nil {
105109 if errors .Is (err , io .EOF ) {
106110 break
107111 }
@@ -123,13 +127,17 @@ func BenchmarkParseProtoGzip(b *testing.B) {
123127
124128 for i := 0 ; i < b .N ; i ++ {
125129 family := & dto.MetricFamily {}
126- in , err := gzip .NewReader (bytes .NewReader (data ))
130+ gz , err := gzip .NewReader (bytes .NewReader (data ))
127131 if err != nil {
128132 b .Fatal (err )
129133 }
134+ in := bufio .NewReader (gz )
135+ unmarshaler := protodelim.UnmarshalOptions {
136+ MaxSize : - 1 ,
137+ }
130138 for {
131139 family .Reset ()
132- if _ , err := pbutil . ReadDelimited (in , family ); err != nil {
140+ if err := unmarshaler . UnmarshalFrom (in , family ); err != nil {
133141 if errors .Is (err , io .EOF ) {
134142 break
135143 }
@@ -153,10 +161,13 @@ func BenchmarkParseProtoMap(b *testing.B) {
153161
154162 for i := 0 ; i < b .N ; i ++ {
155163 families := map [string ]* dto.MetricFamily {}
156- in := bytes .NewReader (data )
164+ in := bufio .NewReader (bytes .NewReader (data ))
165+ unmarshaler := protodelim.UnmarshalOptions {
166+ MaxSize : - 1 ,
167+ }
157168 for {
158169 family := & dto.MetricFamily {}
159- if _ , err := pbutil . ReadDelimited (in , family ); err != nil {
170+ if err := unmarshaler . UnmarshalFrom (in , family ); err != nil {
160171 if errors .Is (err , io .EOF ) {
161172 break
162173 }
0 commit comments