all: remove APIv1 dependency
Remove support for running benchmarks with APIv1.
The comparisons have served their purpose, and this removes the last
dependency on the github.com/golang/protobuf module.
Fixes golang/protobuf#962.
Change-Id: I55758e19451fcd16ab1a5d66244eb8214ceb9fa7
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/214040
Reviewed-by: Joe Tsai <[email protected]>
diff --git a/benchmarks/bench_test.go b/benchmarks/bench_test.go
index 25d4b30..9335dbd 100644
--- a/benchmarks/bench_test.go
+++ b/benchmarks/bench_test.go
@@ -5,7 +5,6 @@
package bench_test
import (
- "bytes"
"flag"
"fmt"
"io/ioutil"
@@ -16,8 +15,6 @@
"testing"
"time"
- "github.com/golang/protobuf/jsonpb"
- protoV1 "github.com/golang/protobuf/proto"
"google.golang.org/protobuf/encoding/protojson"
"google.golang.org/protobuf/encoding/prototext"
"google.golang.org/protobuf/proto"
@@ -32,16 +29,12 @@
_ "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4"
)
-var (
- benchV1 = flag.Bool("v1", false, "benchmark the v1 implementation")
-)
-
func BenchmarkWire(b *testing.B) {
bench(b, "Unmarshal", func(ds dataset, pb *testing.PB) {
for pb.Next() {
for _, p := range ds.wire {
m := ds.messageType.New().Interface()
- if err := Unmarshal(p, m); err != nil {
+ if err := proto.Unmarshal(p, m); err != nil {
b.Fatal(err)
}
}
@@ -50,7 +43,7 @@
bench(b, "Marshal", func(ds dataset, pb *testing.PB) {
for pb.Next() {
for _, m := range ds.messages {
- if _, err := Marshal(m); err != nil {
+ if _, err := proto.Marshal(m); err != nil {
b.Fatal(err)
}
}
@@ -59,7 +52,7 @@
bench(b, "Size", func(ds dataset, pb *testing.PB) {
for pb.Next() {
for _, m := range ds.messages {
- Size(m)
+ proto.Size(m)
}
}
})
@@ -70,7 +63,7 @@
for pb.Next() {
for _, p := range ds.text {
m := ds.messageType.New().Interface()
- if err := UnmarshalText(p, m); err != nil {
+ if err := prototext.Unmarshal(p, m); err != nil {
b.Fatal(err)
}
}
@@ -79,7 +72,7 @@
bench(b, "Marshal", func(ds dataset, pb *testing.PB) {
for pb.Next() {
for _, m := range ds.messages {
- if _, err := MarshalText(m); err != nil {
+ if _, err := prototext.Marshal(m); err != nil {
b.Fatal(err)
}
}
@@ -92,7 +85,7 @@
for pb.Next() {
for _, p := range ds.json {
m := ds.messageType.New().Interface()
- if err := UnmarshalJSON(p, m); err != nil {
+ if err := protojson.Unmarshal(p, m); err != nil {
b.Fatal(err)
}
}
@@ -101,7 +94,7 @@
bench(b, "Marshal", func(ds dataset, pb *testing.PB) {
for pb.Next() {
for _, m := range ds.messages {
- if _, err := MarshalJSON(m); err != nil {
+ if _, err := protojson.Marshal(m); err != nil {
b.Fatal(err)
}
}
@@ -211,57 +204,3 @@
})
os.Exit(m.Run())
}
-
-func Unmarshal(b []byte, m proto.Message) error {
- if *benchV1 {
- return protoV1.Unmarshal(b, m.(protoV1.Message))
- }
- return proto.Unmarshal(b, m)
-}
-
-func Marshal(m proto.Message) ([]byte, error) {
- if *benchV1 {
- return protoV1.Marshal(m.(protoV1.Message))
- }
- return proto.Marshal(m)
-}
-
-func Size(m proto.Message) int {
- if *benchV1 {
- return protoV1.Size(m.(protoV1.Message))
- }
- return proto.Size(m)
-}
-
-func UnmarshalText(b []byte, m proto.Message) error {
- if *benchV1 {
- // Extra string conversion makes this not quite right.
- return protoV1.UnmarshalText(string(b), m.(protoV1.Message))
- }
- return prototext.Unmarshal(b, m)
-}
-
-func MarshalText(m proto.Message) ([]byte, error) {
- if *benchV1 {
- var b bytes.Buffer
- err := protoV1.MarshalText(&b, m.(protoV1.Message))
- return b.Bytes(), err
- }
- return prototext.Marshal(m)
-}
-
-func UnmarshalJSON(b []byte, m proto.Message) error {
- if *benchV1 {
- return jsonpb.Unmarshal(bytes.NewBuffer(b), m.(protoV1.Message))
- }
- return protojson.Unmarshal(b, m)
-}
-
-func MarshalJSON(m proto.Message) ([]byte, error) {
- if *benchV1 {
- var b bytes.Buffer
- err := (&jsonpb.Marshaler{}).Marshal(&b, m.(protoV1.Message))
- return b.Bytes(), err
- }
- return protojson.Marshal(m)
-}
diff --git a/encoding/bench_test.go b/encoding/bench_test.go
index d5ac0c3..d181085 100644
--- a/encoding/bench_test.go
+++ b/encoding/bench_test.go
@@ -9,8 +9,6 @@
"fmt"
"testing"
- jsonpbV1 "github.com/golang/protobuf/jsonpb"
- protoV1 "github.com/golang/protobuf/proto"
"google.golang.org/protobuf/encoding/protojson"
"google.golang.org/protobuf/encoding/prototext"
pref "google.golang.org/protobuf/reflect/protoreflect"
@@ -132,13 +130,9 @@
func BenchmarkTextEncode(b *testing.B) {
m := makeProto()
for i := 0; i < b.N; i++ {
- if *benchV1 {
- protoV1.MarshalTextString(m)
- } else {
- _, err := prototext.MarshalOptions{Indent: " "}.Marshal(m)
- if err != nil {
- b.Fatal(err)
- }
+ _, err := prototext.MarshalOptions{Indent: " "}.Marshal(m)
+ if err != nil {
+ b.Fatal(err)
}
}
}
@@ -152,13 +146,7 @@
for i := 0; i < b.N; i++ {
m := &tpb.TestAllTypes{}
- var err error
- if *benchV1 {
- err = protoV1.UnmarshalText(string(in), m)
- } else {
- err = prototext.Unmarshal(in, m)
- }
- if err != nil {
+ if err := prototext.Unmarshal(in, m); err != nil {
b.Fatal(err)
}
}
@@ -167,13 +155,7 @@
func BenchmarkJSONEncode(b *testing.B) {
m := makeProto()
for i := 0; i < b.N; i++ {
- var err error
- if *benchV1 {
- jsm := &jsonpbV1.Marshaler{Indent: " "}
- _, err = jsm.MarshalToString(m)
- } else {
- _, err = protojson.MarshalOptions{Indent: " "}.Marshal(m)
- }
+ _, err := protojson.MarshalOptions{Indent: " "}.Marshal(m)
if err != nil {
b.Fatal(err)
}
@@ -189,13 +171,7 @@
for i := 0; i < b.N; i++ {
m := &tpb.TestAllTypes{}
- var err error
- if *benchV1 {
- err = jsonpbV1.UnmarshalString(string(out), m)
- } else {
- err = protojson.Unmarshal(out, m)
- }
- if err != nil {
+ if err := protojson.Unmarshal(out, m); err != nil {
b.Fatal(err)
}
}
diff --git a/go.mod b/go.mod
index 754c67c..74f9af0 100644
--- a/go.mod
+++ b/go.mod
@@ -2,7 +2,4 @@
go 1.9
-require (
- github.com/golang/protobuf v1.2.1-0.20191106221148-0fd87f0c3acd
- github.com/google/go-cmp v0.3.0
-)
+require github.com/google/go-cmp v0.3.0
diff --git a/go.sum b/go.sum
index 03be2ec..7e5f1f7 100644
--- a/go.sum
+++ b/go.sum
@@ -1,33 +1,2 @@
-github.com/golang/protobuf v1.2.1-0.20190514181236-7800af189d76/go.mod h1:Zfz6qcDoDBESdv6JsKsGpgNHnkvwJAJwcA9eL+mOkgc=
-github.com/golang/protobuf v1.2.1-0.20190515194842-7574ba03306e/go.mod h1:GjgUz9uwrRQmdPBBrFqiVbojAmlpy6ryM6DCzC+20rE=
-github.com/golang/protobuf v1.2.1-0.20190516201927-a2cd3ac1b343/go.mod h1:PScGDF2x230A126tLt9Ol9RjhXzbiPJrt/CogooD2mE=
-github.com/golang/protobuf v1.2.1-0.20190516215712-ae2eaafab405/go.mod h1:UmP8hhPKR5WWIjbT9v0JEVT+U0DBSjbW8KaZVeyFfRE=
-github.com/golang/protobuf v1.2.1-0.20190523175523-a1331f0b4ab4/go.mod h1:G+fNMoyvKWZDB7PCDHF+dXbH9OeE3+JoozCd9V7i66U=
-github.com/golang/protobuf v1.2.1-0.20190605195750-76c9e09470ba/go.mod h1:S1YIJXvYHGRCG2UmZsOcElkAYfvZLg2sDRr9+Xu8JXU=
-github.com/golang/protobuf v1.2.1-0.20190617175902-f94016f5239f/go.mod h1:G+HpKX7pYZAVkElkAWZkr08MToW6pTp/vs+E9osFfbg=
-github.com/golang/protobuf v1.2.1-0.20190620192300-1ee46dfd80dd/go.mod h1:+CMAsi9jpYf/wAltLUKlg++CWXqxCJyD8iLDbQONsJs=
-github.com/golang/protobuf v1.2.1-0.20190806214225-7037721e6de0 h1:a3hJDGxxWRbPxfOMiV6aG8pb0I+8RdgICRdXjXjiKzY=
-github.com/golang/protobuf v1.2.1-0.20190806214225-7037721e6de0/go.mod h1:tDQPRlaHYu9yt1wPgdx85inRiLvUCuJZXsYjC0mwc1c=
-github.com/golang/protobuf v1.2.1-0.20190820204156-2da1b93405dd h1:KtPU12Q37ryZW+7L97q/3GAhHtFXRjEkulcRj4dnSvA=
-github.com/golang/protobuf v1.2.1-0.20190820204156-2da1b93405dd/go.mod h1:x87I3ou7ehf/yR6iQ88MkyDogdxXN04TELJ7HVy7V7I=
-github.com/golang/protobuf v1.2.1-0.20190820213554-ae1d65bc5435 h1:mh1ym3CXIEzWTZlfDucUHHIbroKZ8ri4E3dbxu80las=
-github.com/golang/protobuf v1.2.1-0.20190820213554-ae1d65bc5435/go.mod h1:k7dGkiTZ3rjVDhKSpGt+x1zDzAePJk4jdhoBwIkQgBo=
-github.com/golang/protobuf v1.2.1-0.20191004062209-62f67f1ea9df h1:EXfvyTCV8/aeUp9mwwpgEDbIiiRci9e2PRaV0twjhBM=
-github.com/golang/protobuf v1.2.1-0.20191004062209-62f67f1ea9df/go.mod h1:o4el5ABfDjqFlwwvAq2OIgAPeNXQYUkhtrjNPXy6T6I=
-github.com/golang/protobuf v1.2.1-0.20191106221148-0fd87f0c3acd h1:HRAeHeNJbefBqWooTOEznG0HunlCcAOzNACnJDu+UAw=
-github.com/golang/protobuf v1.2.1-0.20191106221148-0fd87f0c3acd/go.mod h1:DtQPFud7lSZSAIWTr1L3itZzoZ2qEjuLgjbcxvO1ZiU=
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-google.golang.org/protobuf v0.0.0-20190514172829-e89e6244e0e8/go.mod h1:791zQGC15vDqjpmPRn1uGPu5oHy/Jzw/Q1n5JsgIIcY=
-google.golang.org/protobuf v0.0.0-20190514231807-cdb777356907/go.mod h1:HeRLsKXv4+wE27dOIGwnqcOgq6a1O/GJ7mGhiEPnBrU=
-google.golang.org/protobuf v0.0.0-20190516201745-40b83d67fc75/go.mod h1:jf+u8AHuKtkib+0J4/bQXPNzCmT3V9a02hVzYKtatuw=
-google.golang.org/protobuf v0.0.0-20190516215540-a95b29fbf623/go.mod h1:cWWmz5lsCWIcqGLROrKq5Lu231IJw2PzqOZ8cgspbfY=
-google.golang.org/protobuf v0.0.0-20190522194032-21ade498bd69/go.mod h1:cJytyYi/6qdwy/+gD49hmgHcwD7zhWxE/1KPEslaZ3M=
-google.golang.org/protobuf v0.0.0-20190605195314-89d49632e5cf/go.mod h1:Btug4TBaP5wNYcb2zGKDTS7WMcaPPLuqEAKfEAZWYbo=
-google.golang.org/protobuf v0.0.0-20190617175724-bd7b7a9e0c26/go.mod h1:+FOB8T5/Yw4ywwdyeun9/KlDeuwFYBkNQ+kVuwj9C94=
-google.golang.org/protobuf v0.0.0-20190620020611-d888139e7b59/go.mod h1:of3pt14Y+dOxz2tBOHXEoapPpKFC15/0zWhPAddkfsU=
-google.golang.org/protobuf v0.0.0-20190717230113-f647c82cc3c7/go.mod h1:yGm7aNHn9Bp1NIvj6+CVUkcJshu+Usshfd3A+YxEuI8=
-google.golang.org/protobuf v0.0.0-20190820203659-c0f8c0a24ece/go.mod h1:tRqhEyKwbKqwt5CQZAuOtj09RfhLNklDOhndhYA9blU=
-google.golang.org/protobuf v0.0.0-20190820213257-f1e905b04207/go.mod h1:UJqt2ZERO8/qk5A9t8Ujq6OJ+MNvOQpg9X4RKyYz9Ho=
-google.golang.org/protobuf v0.0.0-20190828183429-79bfdbe45be2/go.mod h1:fYMzYhnMXLj/kGDPzNOptS3IFFlQjWTlu2j3ZPET2lw=
-google.golang.org/protobuf v0.0.0-20191031162342-c826885a2abe/go.mod h1:qKrTvhhUFcTIUF6KuejTfRdHXKeBPoa4mtynR6usTss=
diff --git a/proto/bench_test.go b/proto/bench_test.go
index 99693e6..55bce59 100644
--- a/proto/bench_test.go
+++ b/proto/bench_test.go
@@ -10,7 +10,6 @@
"reflect"
"testing"
- protoV1 "github.com/golang/protobuf/proto"
"google.golang.org/protobuf/proto"
)
@@ -19,7 +18,6 @@
// detect unexpected regressions and for profiling specific cases.
var (
- benchV1 = flag.Bool("v1", false, "benchmark the v1 implementation")
allowPartial = flag.Bool("allow_partial", false, "set AllowPartial")
)
@@ -27,17 +25,11 @@
func BenchmarkEncode(b *testing.B) {
for _, test := range testValidMessages {
for _, want := range test.decodeTo {
- v1 := want.(protoV1.Message)
opts := proto.MarshalOptions{AllowPartial: *allowPartial}
b.Run(fmt.Sprintf("%s (%T)", test.desc, want), func(b *testing.B) {
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
- var err error
- if *benchV1 {
- _, err = protoV1.Marshal(v1)
- } else {
- _, err = opts.Marshal(want)
- }
+ _, err := opts.Marshal(want)
if err != nil && !test.partial {
b.Fatal(err)
}
@@ -57,13 +49,7 @@
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
m := reflect.New(reflect.TypeOf(want).Elem()).Interface().(proto.Message)
- v1 := m.(protoV1.Message)
- var err error
- if *benchV1 {
- err = protoV1.Unmarshal(test.wire, v1)
- } else {
- err = opts.Unmarshal(test.wire, m)
- }
+ err := opts.Unmarshal(test.wire, m)
if err != nil && !test.partial {
b.Fatal(err)
}