(b *testing.B)
| 145 | } |
| 146 | |
| 147 | func 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 | |
| 199 | func BenchmarkParseUuid(b *testing.B) { |
| 200 | for _, uuid := range []string{ |
nothing calls this directly
no test coverage detected