MCPcopy Create free account
hub / github.com/Restream/reindexer / BenchmarkCJSONEncoderArgumentShape

Function BenchmarkCJSONEncoderArgumentShape

cjson/encoder_bench_test.go:147–197  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

145}
146
147func BenchmarkCJSONEncoderArgumentShape(b *testing.B) {
148 state := NewState()
149 enc := state.NewEncoder()
150 doc := benchSliceDocF32{ID: 1, Values: make([]float32, 256)}
151 for i := range doc.Values {
152 doc.Values[i] = float32(i) / 10
153 }
154 preboxed := any(doc)
155
156 ser := NewPoolSerializer()
157 if err := enc.EncodeRaw(preboxed, ser); err != nil {
158 b.Fatalf("warm cjson encoder: %v", err)
159 }
160 ser.Close()
161
162 b.Run("value-direct", func(b *testing.B) {
163 b.ReportAllocs()
164 for b.Loop() {
165 ser := NewPoolSerializer()
166 if err := enc.EncodeRaw(doc, ser); err != nil {
167 b.Fatalf("encode cjson value: %v", err)
168 }
169 benchBytesSink = ser.Bytes()
170 ser.Close()
171 }
172 })
173
174 b.Run("value-preboxed", func(b *testing.B) {
175 b.ReportAllocs()
176 for b.Loop() {
177 ser := NewPoolSerializer()
178 if err := enc.EncodeRaw(preboxed, ser); err != nil {
179 b.Fatalf("encode cjson preboxed value: %v", err)
180 }
181 benchBytesSink = ser.Bytes()
182 ser.Close()
183 }
184 })
185
186 b.Run("pointer", func(b *testing.B) {
187 b.ReportAllocs()
188 for b.Loop() {
189 ser := NewPoolSerializer()
190 if err := enc.EncodeRaw(&doc, ser); err != nil {
191 b.Fatalf("encode cjson pointer: %v", err)
192 }
193 benchBytesSink = ser.Bytes()
194 ser.Close()
195 }
196 })
197}
198
199func BenchmarkParseUuid(b *testing.B) {
200 for _, uuid := range []string{

Callers

nothing calls this directly

Calls 8

NewEncoderMethod · 0.95
EncodeRawMethod · 0.95
NewStateFunction · 0.85
NewPoolSerializerFunction · 0.85
BytesMethod · 0.80
CloseMethod · 0.45
RunMethod · 0.45
LoopMethod · 0.45

Tested by

no test coverage detected