| 422 | } |
| 423 | |
| 424 | func BenchmarkString_DecodeMsg(b *testing.B) { |
| 425 | sizes := []int{10, 100, 1000} |
| 426 | |
| 427 | for _, size := range sizes { |
| 428 | b.Run(fmt.Sprintf("%d", size), func(b *testing.B) { |
| 429 | set := make(String) |
| 430 | for i := 0; i < size; i++ { |
| 431 | set[fmt.Sprintf("val%d", i)] = struct{}{} |
| 432 | } |
| 433 | |
| 434 | var buf bytes.Buffer |
| 435 | writer := msgp.NewWriter(&buf) |
| 436 | set.EncodeMsg(writer) |
| 437 | writer.Flush() |
| 438 | encoded := buf.Bytes() |
| 439 | |
| 440 | b.ReportAllocs() |
| 441 | b.ResetTimer() |
| 442 | for i := 0; i < b.N; i++ { |
| 443 | reader := msgp.NewReader(bytes.NewReader(encoded)) |
| 444 | var decoded String |
| 445 | decoded.DecodeMsg(reader) |
| 446 | } |
| 447 | }) |
| 448 | } |
| 449 | } |
| 450 | |
| 451 | func BenchmarkString_MarshalMsg(b *testing.B) { |
| 452 | sizes := []int{10, 100, 1000} |