func BenchmarkIncidentDecode(b *testing.B) { v := Incident{} var buf bytes.Buffer msgp.Encode(&buf, &v) b.SetBytes(int64(buf.Len())) rd := msgp.NewEndlessReader(buf.Bytes(), b) dc := msgp.NewReader(rd) b.ReportAllocs() b.ResetTimer() for i := 0; i < b.N; i++ { err := v.DecodeMsg(dc) if err != nil { b.Fatal(err) } } }
// benchmark decoding a small, "fast" type. // the point here is to see how much garbage // is generated intrinsically by the encoding/ // decoding process as opposed to the nature // of the struct. func BenchmarkFastDecode(b *testing.B) { v := &TestFast{ Lat: 40.12398, Long: -41.9082, Alt: 201.08290, Data: []byte("whaaaaargharbl"), } var buf bytes.Buffer msgp.Encode(&buf, v) dc := msgp.NewReader(msgp.NewEndlessReader(buf.Bytes(), b)) b.SetBytes(int64(buf.Len())) b.ReportAllocs() b.ResetTimer() for i := 0; i < b.N; i++ { v.DecodeMsg(dc) } }