aboutsummaryrefslogtreecommitdiff
path: root/benchmarks
diff options
context:
space:
mode:
authorYilun Chong <yilunchong@google.com>2018-03-19 16:43:27 -0700
committerYilun Chong <yilunchong@google.com>2018-03-19 16:43:27 -0700
commitd6323c8c0f029d4ce3324fcaa635f08139196e0d (patch)
tree3af174963f09baa98f2f59aebce3a9b9abcfdb31 /benchmarks
parent501c13f65a0093b61d95e16e8941cd3b456c41a0 (diff)
downloadprotobuf-d6323c8c0f029d4ce3324fcaa635f08139196e0d.tar.gz
protobuf-d6323c8c0f029d4ce3324fcaa635f08139196e0d.tar.bz2
protobuf-d6323c8c0f029d4ce3324fcaa635f08139196e0d.zip
Change to deal all messages in one loop
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/go_benchmark_test.go37
1 files changed, 19 insertions, 18 deletions
diff --git a/benchmarks/go_benchmark_test.go b/benchmarks/go_benchmark_test.go
index c8a70280..e747465e 100644
--- a/benchmarks/go_benchmark_test.go
+++ b/benchmarks/go_benchmark_test.go
@@ -78,44 +78,45 @@ func init() {
func Benchmark(b *testing.B) {
for _, ds := range datasets {
b.Run(ds.name, func(b *testing.B) {
- counter := 0
- count := len(ds.marshaled)
b.Run("Unmarshal", func(b *testing.B) {
for i := 0; i < b.N; i++ {
- payload := ds.marshaled[counter%count]
- out := ds.newMessage()
- if err := proto.Unmarshal(payload, out); err != nil {
- b.Fatalf("can't unmarshal message %d %v", counter%count, err)
+ for j, payload := range ds.marshaled {
+ out := ds.newMessage()
+ if err := proto.Unmarshal(payload, out); err != nil {
+ b.Fatalf("can't unmarshal message %d %v", j, err)
+ }
}
- counter++
}
})
b.Run("Marshal", func(b *testing.B) {
for i := 0; i < b.N; i++ {
- m := ds.unmarshaled[counter%count]
- if _, err := proto.Marshal(m); err != nil {
- b.Fatalf("can't marshal message %d %+v: %v", counter%count, m, err)
+ for j, m := range ds.unmarshaled {
+ if _, err := proto.Marshal(m); err != nil {
+ b.Fatalf("can't marshal message %d %+v: %v", j, m, err)
+ }
}
- counter++
}
})
b.Run("Size", func(b *testing.B) {
for i := 0; i < b.N; i++ {
- proto.Size(ds.unmarshaled[counter%count])
- counter++
+ for _, m := range ds.unmarshaled {
+ proto.Size(m)
+ }
}
})
b.Run("Clone", func(b *testing.B) {
for i := 0; i < b.N; i++ {
- proto.Clone(ds.unmarshaled[counter%count])
- counter++
+ for _, m := range ds.unmarshaled {
+ proto.Clone(m)
+ }
}
})
b.Run("Merge", func(b *testing.B) {
for i := 0; i < b.N; i++ {
- out := ds.newMessage()
- proto.Merge(out, ds.unmarshaled[counter%count])
- counter++
+ for _, m := range ds.unmarshaled {
+ out := ds.newMessage()
+ proto.Merge(out, m)
+ }
}
})
})