Change to deal all messages in one loop

pull/4361/head
Yilun Chong 7 years ago
parent 501c13f65a
commit d6323c8c0f
  1. 37
      benchmarks/go_benchmark_test.go

@ -78,44 +78,45 @@ func init() {
func Benchmark(b *testing.B) { func Benchmark(b *testing.B) {
for _, ds := range datasets { for _, ds := range datasets {
b.Run(ds.name, func(b *testing.B) { b.Run(ds.name, func(b *testing.B) {
counter := 0
count := len(ds.marshaled)
b.Run("Unmarshal", func(b *testing.B) { b.Run("Unmarshal", func(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
payload := ds.marshaled[counter%count] for j, payload := range ds.marshaled {
out := ds.newMessage() out := ds.newMessage()
if err := proto.Unmarshal(payload, out); err != nil { if err := proto.Unmarshal(payload, out); err != nil {
b.Fatalf("can't unmarshal message %d %v", counter%count, err) b.Fatalf("can't unmarshal message %d %v", j, err)
}
} }
counter++
} }
}) })
b.Run("Marshal", func(b *testing.B) { b.Run("Marshal", func(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
m := ds.unmarshaled[counter%count] for j, m := range ds.unmarshaled {
if _, err := proto.Marshal(m); err != nil { if _, err := proto.Marshal(m); err != nil {
b.Fatalf("can't marshal message %d %+v: %v", counter%count, m, err) b.Fatalf("can't marshal message %d %+v: %v", j, m, err)
}
} }
counter++
} }
}) })
b.Run("Size", func(b *testing.B) { b.Run("Size", func(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
proto.Size(ds.unmarshaled[counter%count]) for _, m := range ds.unmarshaled {
counter++ proto.Size(m)
}
} }
}) })
b.Run("Clone", func(b *testing.B) { b.Run("Clone", func(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
proto.Clone(ds.unmarshaled[counter%count]) for _, m := range ds.unmarshaled {
counter++ proto.Clone(m)
}
} }
}) })
b.Run("Merge", func(b *testing.B) { b.Run("Merge", func(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
out := ds.newMessage() for _, m := range ds.unmarshaled {
proto.Merge(out, ds.unmarshaled[counter%count]) out := ds.newMessage()
counter++ proto.Merge(out, m)
}
} }
}) })
}) })

Loading…
Cancel
Save