14
14
package expfmt
15
15
16
16
import (
17
+ "bufio"
17
18
"bytes"
18
19
"compress/gzip"
19
20
"errors"
20
21
"io"
21
22
"os"
22
23
"testing"
23
24
24
- "github.com/matttproud/golang_protobuf_extensions/v2/pbutil "
25
+ "google.golang.org/protobuf/encoding/protodelim "
25
26
26
27
dto "github.com/prometheus/client_model/go"
27
28
)
@@ -98,10 +99,13 @@ func BenchmarkParseProto(b *testing.B) {
98
99
99
100
for i := 0 ; i < b .N ; i ++ {
100
101
family := & dto.MetricFamily {}
101
- in := bytes .NewReader (data )
102
+ in := bufio .NewReader (bytes .NewReader (data ))
103
+ unmarshaler := protodelim.UnmarshalOptions {
104
+ MaxSize : - 1 ,
105
+ }
102
106
for {
103
107
family .Reset ()
104
- if _ , err := pbutil . ReadDelimited (in , family ); err != nil {
108
+ if err := unmarshaler . UnmarshalFrom (in , family ); err != nil {
105
109
if errors .Is (err , io .EOF ) {
106
110
break
107
111
}
@@ -123,13 +127,17 @@ func BenchmarkParseProtoGzip(b *testing.B) {
123
127
124
128
for i := 0 ; i < b .N ; i ++ {
125
129
family := & dto.MetricFamily {}
126
- in , err := gzip .NewReader (bytes .NewReader (data ))
130
+ gz , err := gzip .NewReader (bytes .NewReader (data ))
127
131
if err != nil {
128
132
b .Fatal (err )
129
133
}
134
+ in := bufio .NewReader (gz )
135
+ unmarshaler := protodelim.UnmarshalOptions {
136
+ MaxSize : - 1 ,
137
+ }
130
138
for {
131
139
family .Reset ()
132
- if _ , err := pbutil . ReadDelimited (in , family ); err != nil {
140
+ if err := unmarshaler . UnmarshalFrom (in , family ); err != nil {
133
141
if errors .Is (err , io .EOF ) {
134
142
break
135
143
}
@@ -153,10 +161,13 @@ func BenchmarkParseProtoMap(b *testing.B) {
153
161
154
162
for i := 0 ; i < b .N ; i ++ {
155
163
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
+ }
157
168
for {
158
169
family := & dto.MetricFamily {}
159
- if _ , err := pbutil . ReadDelimited (in , family ); err != nil {
170
+ if err := unmarshaler . UnmarshalFrom (in , family ); err != nil {
160
171
if errors .Is (err , io .EOF ) {
161
172
break
162
173
}
0 commit comments