| 149 | } |
| 150 | |
| 151 | func BenchmarkUnmarshal(b *testing.B) { |
| 152 | for _, v := range benchmarkValues { |
| 153 | b.Run(fmt.Sprintf("%T", v), func(b *testing.B) { |
| 154 | data, err := Marshal(v) |
| 155 | |
| 156 | if err != nil { |
| 157 | b.Fatal(err) |
| 158 | } |
| 159 | |
| 160 | value := reflect.New(reflect.TypeOf(v)) |
| 161 | ptr := value.Interface() |
| 162 | elem := value.Elem() |
| 163 | zero := reflect.Zero(reflect.TypeOf(v)) |
| 164 | |
| 165 | for i := 0; i < b.N; i++ { |
| 166 | if err := Unmarshal(data, ptr); err != nil { |
| 167 | b.Fatal(err) |
| 168 | } |
| 169 | elem.Set(zero) |
| 170 | } |
| 171 | }) |
| 172 | } |
| 173 | } |
| 174 | |
| 175 | type testKafkaLogger struct { |
| 176 | Prefix string |