Skip to content

Commit 66c8ca2

Browse files
committed
Add Makefile to generate code and update dependencies
1 parent 7e61ed7 commit 66c8ca2

9 files changed

+422
-262
lines changed

FlatBufferA.go

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package goserbench
55
import (
66
flatbuffers "github.com/google/flatbuffers/go"
77
)
8-
98
type FlatBufferA struct {
109
_tab flatbuffers.Table
1110
}
@@ -15,12 +14,12 @@ func (rcv *FlatBufferA) Init(buf []byte, i flatbuffers.UOffsetT) {
1514
rcv._tab.Pos = i
1615
}
1716

18-
func (rcv *FlatBufferA) Name() string {
17+
func (rcv *FlatBufferA) Name() []byte {
1918
o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
2019
if o != 0 {
21-
return rcv._tab.String(o + rcv._tab.Pos)
20+
return rcv._tab.ByteVector(o + rcv._tab.Pos)
2221
}
23-
return ""
22+
return nil
2423
}
2524

2625
func (rcv *FlatBufferA) BirthDay() int64 {
@@ -31,12 +30,12 @@ func (rcv *FlatBufferA) BirthDay() int64 {
3130
return 0
3231
}
3332

34-
func (rcv *FlatBufferA) Phone() string {
33+
func (rcv *FlatBufferA) Phone() []byte {
3534
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
3635
if o != 0 {
37-
return rcv._tab.String(o + rcv._tab.Pos)
36+
return rcv._tab.ByteVector(o + rcv._tab.Pos)
3837
}
39-
return ""
38+
return nil
4039
}
4140

4241
func (rcv *FlatBufferA) Siblings() int32 {
@@ -64,22 +63,10 @@ func (rcv *FlatBufferA) Money() float64 {
6463
}
6564

6665
func FlatBufferAStart(builder *flatbuffers.Builder) { builder.StartObject(6) }
67-
func FlatBufferAAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) {
68-
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(name), 0)
69-
}
70-
func FlatBufferAAddBirthDay(builder *flatbuffers.Builder, birthDay int64) {
71-
builder.PrependInt64Slot(1, birthDay, 0)
72-
}
73-
func FlatBufferAAddPhone(builder *flatbuffers.Builder, phone flatbuffers.UOffsetT) {
74-
builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(phone), 0)
75-
}
76-
func FlatBufferAAddSiblings(builder *flatbuffers.Builder, siblings int32) {
77-
builder.PrependInt32Slot(3, siblings, 0)
78-
}
79-
func FlatBufferAAddSpouse(builder *flatbuffers.Builder, spouse byte) {
80-
builder.PrependByteSlot(4, spouse, 0)
81-
}
82-
func FlatBufferAAddMoney(builder *flatbuffers.Builder, money float64) {
83-
builder.PrependFloat64Slot(5, money, 0)
84-
}
66+
func FlatBufferAAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(name), 0) }
67+
func FlatBufferAAddBirthDay(builder *flatbuffers.Builder, birthDay int64) { builder.PrependInt64Slot(1, birthDay, 0) }
68+
func FlatBufferAAddPhone(builder *flatbuffers.Builder, phone flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(phone), 0) }
69+
func FlatBufferAAddSiblings(builder *flatbuffers.Builder, siblings int32) { builder.PrependInt32Slot(3, siblings, 0) }
70+
func FlatBufferAAddSpouse(builder *flatbuffers.Builder, spouse byte) { builder.PrependByteSlot(4, spouse, 0) }
71+
func FlatBufferAAddMoney(builder *flatbuffers.Builder, money float64) { builder.PrependFloat64Slot(5, money, 0) }
8572
func FlatBufferAEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }

Makefile

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
all: FlatBufferA.go msgp_gen.go structdef-gogo.pb.go structdef.pb.go vitess_test.go
2+
3+
FlatBufferA.go: flatbuffers-structdef.fbs
4+
flatc -g flatbuffers-structdef.fbs
5+
mv flatbuffersmodels/FlatBufferA.go FlatBufferA.go
6+
rmdir flatbuffersmodels
7+
sed -i '' 's/flatbuffersmodels/goserbench/' FlatBufferA.go
8+
9+
msgp_gen.go: structdef.go
10+
go generate
11+
12+
structdef-gogo.pb.go: structdef-gogo.proto
13+
protoc --gogo_out=. -I. -I${GOPATH}/src -I${GOPATH}/src/github.com/gogo/protobuf/protobuf structdef-gogo.proto
14+
15+
structdef.pb.go: structdef.proto
16+
protoc --go_out=. structdef.proto
17+
18+
vitess_test.go: structdef.go
19+
bsongen -file=structdef.go -o=vitess_test.go -type=A
20+
21+
.PHONY: clean
22+
clean:
23+
rm -f FlatBufferA.go msgp_gen.go structdef-gogo.pb.go structdef.pb.go vitess_test.go
24+
25+
.PHONY: install
26+
install:
27+
go get -u github.com/gogo/protobuf/protoc-gen-gogo
28+
go get -u github.com/gogo/protobuf/gogoproto
29+
go get -u github.com/golang/protobuf/protoc-gen-go
30+
go get -u github.com/tinylib/msgp
31+
go get -u github.com/youtube/vitess/go/cmd/bsongen
32+
33+
go get -u github.com/DeDiS/protobuf
34+
go get -u github.com/Sereal/Sereal/Go/sereal
35+
go get -u github.com/alecthomas/binary
36+
go get -u github.com/davecgh/go-xdr/xdr
37+
go get -u github.com/gogo/protobuf/proto
38+
go get -u github.com/google/flatbuffers/go
39+
go get -u github.com/tinylib/msgp/msgp
40+
go get -u github.com/ugorji/go/codec
41+
go get -u github.com/youtube/vitess/go/bson
42+
go get -u gopkg.in/mgo.v2/bson
43+
go get -u gopkg.in/vmihailenco/msgpack.v2
44+
go get -u github.com/golang/protobuf/proto
45+
go get -u github.com/hprose/hprose-go/io

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ This is a test suite for benchmarking various Go serialization methods.
1313
- [gopkg.in/vmihailenco/msgpack.v2](https://github.com/vmihailenco/msgpack)
1414
- [github.com/youtube/vitess/go/bson](https://github.com/youtube/vitess/tree/master/go/bson) *(using the bsongen code generator)*
1515
- [labix.org/v2/mgo/bson](https://labix.org/v2/mgo/bson)
16-
- [github.com/philhofer/msgp](https://github.com/philhofer/msgp) *(code generator for msgpack)*
16+
- [github.com/tinylib/msgp](https://github.com/tinylib/msgp) *(code generator for msgpack)*
1717
- [github.com/golang/protobuf](https://github.com/golang/protobuf) (generated code)
1818
- [github.com/gogo/protobuf](https://gogo.github.io/) (generated code, optimized version of `goprotobuf`)
1919
- [github.com/DeDiS/protobuf](https://github.com/DeDiS/protobuf) (reflection based)

msgp_gen.go

Lines changed: 20 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,149 +1,96 @@
11
package goserbench
22

33
// NOTE: THIS FILE WAS PRODUCED BY THE
4-
// MSGP CODE GENERATION TOOL (github.com/philhofer/msgp)
4+
// MSGP CODE GENERATION TOOL (github.com/tinylib/msgp)
55
// DO NOT EDIT
66

77
import (
8-
"github.com/philhofer/msgp/msgp"
8+
"github.com/tinylib/msgp/msgp"
99
)
1010

11-
12-
// MarshalMsg implements the msgp.Marshaler interface
11+
// MarshalMsg implements msgp.Marshaler
1312
func (z *A) MarshalMsg(b []byte) (o []byte, err error) {
1413
o = msgp.Require(b, z.Msgsize())
15-
16-
o = msgp.AppendMapHeader(o, 6)
17-
18-
o = msgp.AppendString(o, "Name")
19-
14+
// map header, size 6
15+
// string "Name"
16+
o = append(o, 0x86, 0xa4, 0x4e, 0x61, 0x6d, 0x65)
2017
o = msgp.AppendString(o, z.Name)
21-
22-
o = msgp.AppendString(o, "BirthDay")
23-
18+
// string "BirthDay"
19+
o = append(o, 0xa8, 0x42, 0x69, 0x72, 0x74, 0x68, 0x44, 0x61, 0x79)
2420
o = msgp.AppendTime(o, z.BirthDay)
25-
26-
o = msgp.AppendString(o, "Phone")
27-
21+
// string "Phone"
22+
o = append(o, 0xa5, 0x50, 0x68, 0x6f, 0x6e, 0x65)
2823
o = msgp.AppendString(o, z.Phone)
29-
30-
o = msgp.AppendString(o, "Siblings")
31-
24+
// string "Siblings"
25+
o = append(o, 0xa8, 0x53, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x73)
3226
o = msgp.AppendInt(o, z.Siblings)
33-
34-
o = msgp.AppendString(o, "Spouse")
35-
27+
// string "Spouse"
28+
o = append(o, 0xa6, 0x53, 0x70, 0x6f, 0x75, 0x73, 0x65)
3629
o = msgp.AppendBool(o, z.Spouse)
37-
38-
o = msgp.AppendString(o, "Money")
39-
30+
// string "Money"
31+
o = append(o, 0xa5, 0x4d, 0x6f, 0x6e, 0x65, 0x79)
4032
o = msgp.AppendFloat64(o, z.Money)
41-
4233
return
4334
}
4435

45-
// UnmarshalMsg unmarshals a A from MessagePack, returning any extra bytes
46-
// and any errors encountered
36+
// UnmarshalMsg implements msgp.Unmarshaler
4737
func (z *A) UnmarshalMsg(bts []byte) (o []byte, err error) {
4838
var field []byte
4939
_ = field
50-
5140
var isz uint32
5241
isz, bts, err = msgp.ReadMapHeaderBytes(bts)
5342
if err != nil {
5443
return
5544
}
56-
for xplz := uint32(0); xplz < isz; xplz++ {
45+
for isz > 0 {
46+
isz--
5747
field, bts, err = msgp.ReadMapKeyZC(bts)
5848
if err != nil {
5949
return
6050
}
6151
switch msgp.UnsafeString(field) {
62-
6352
case "Name":
64-
6553
z.Name, bts, err = msgp.ReadStringBytes(bts)
66-
6754
if err != nil {
6855
return
6956
}
70-
7157
case "BirthDay":
72-
7358
z.BirthDay, bts, err = msgp.ReadTimeBytes(bts)
74-
7559
if err != nil {
7660
return
7761
}
78-
7962
case "Phone":
80-
8163
z.Phone, bts, err = msgp.ReadStringBytes(bts)
82-
8364
if err != nil {
8465
return
8566
}
86-
8767
case "Siblings":
88-
8968
z.Siblings, bts, err = msgp.ReadIntBytes(bts)
90-
9169
if err != nil {
9270
return
9371
}
94-
9572
case "Spouse":
96-
9773
z.Spouse, bts, err = msgp.ReadBoolBytes(bts)
98-
9974
if err != nil {
10075
return
10176
}
102-
10377
case "Money":
104-
10578
z.Money, bts, err = msgp.ReadFloat64Bytes(bts)
106-
10779
if err != nil {
10880
return
10981
}
110-
11182
default:
11283
bts, err = msgp.Skip(bts)
11384
if err != nil {
11485
return
11586
}
11687
}
11788
}
118-
11989
o = bts
12090
return
12191
}
12292

123-
// Msgsize implements the msgp.Sizer interface
12493
func (z *A) Msgsize() (s int) {
125-
126-
s += msgp.MapHeaderSize
127-
s += msgp.StringPrefixSize + 4
128-
129-
s += msgp.StringPrefixSize + len(z.Name)
130-
131-
s += msgp.StringPrefixSize + 8
132-
133-
s += msgp.TimeSize
134-
s += msgp.StringPrefixSize + 5
135-
136-
s += msgp.StringPrefixSize + len(z.Phone)
137-
138-
s += msgp.StringPrefixSize + 8
139-
140-
s += msgp.IntSize
141-
s += msgp.StringPrefixSize + 6
142-
143-
s += msgp.BoolSize
144-
s += msgp.StringPrefixSize + 5
145-
146-
s += msgp.Float64Size
147-
94+
s = 1 + 5 + msgp.StringPrefixSize + len(z.Name) + 9 + msgp.TimeSize + 6 + msgp.StringPrefixSize + len(z.Phone) + 9 + msgp.IntSize + 7 + msgp.BoolSize + 6 + msgp.Float64Size
14895
return
14996
}

serialization_benchmarks_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
"github.com/gogo/protobuf/proto"
1818
flatbuffers "github.com/google/flatbuffers/go"
1919
"github.com/hprose/hprose-go/io"
20-
"github.com/philhofer/msgp/msgp"
20+
"github.com/tinylib/msgp/msgp"
2121
"github.com/ugorji/go/codec"
2222
vitessbson "github.com/youtube/vitess/go/bson"
2323
"gopkg.in/mgo.v2/bson"
@@ -631,8 +631,8 @@ func BenchmarkFlatBuffersUnmarshal(b *testing.B) {
631631
i := data[n]
632632
spouseVal := o.Spouse() == byte(1)
633633

634-
correct := o.Name() == i.Name &&
635-
o.Phone() == i.Phone &&
634+
correct := string(o.Name()) == i.Name &&
635+
string(o.Phone()) == i.Phone &&
636636
int(o.Siblings()) == i.Siblings &&
637637
spouseVal == i.Spouse &&
638638
o.Money() == i.Money &&

0 commit comments

Comments
 (0)