Skip to content

Commit 6f010e2

Browse files
ymz-ncnkalecthomas
authored andcommitted
Add musgo to benchmarks
1 parent e470180 commit 6f010e2

File tree

8 files changed

+1068
-117
lines changed

8 files changed

+1068
-117
lines changed

Makefile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# This is necessary due to the use of two conflicting generator commands for capnproto
22
.NOTPARALLEL:
33

4-
all: Colfer.go FlatBufferA.go msgp_gen.go structdef-gogo.pb.go structdef.pb.go structdef.capnp.go structdef.capnp2.go gencode.schema.gen.go gencode-unsafe.schema.gen.go structdefxdr_generated.go structdef-bebop.go structdef_msgpackgen.go
4+
all: Colfer.go FlatBufferA.go msgp_gen.go structdef-gogo.pb.go structdef.pb.go structdef.capnp.go structdef.capnp2.go gencode.schema.gen.go gencode-unsafe.schema.gen.go structdefxdr_generated.go structdef-bebop.go structdef_msgpackgen.go musgo.go
55

66
Colfer.go:
77
go run github.com/pascaldekloe/colfer/cmd/colf go
@@ -49,9 +49,12 @@ structdef-bebop.go:
4949
structdef_msgpackgen.go: structdef.go
5050
go run github.com/shamaton/msgpackgen -input-file structdef.go -output-file structdef_msgpackgen.go -strict
5151

52+
musgo.go: structdef.go
53+
go run ./musgo/generate.go
54+
5255
.PHONY: clean
5356
clean:
54-
rm -f Colfer.go FlatBufferA.go msgp_gen.go structdef-gogo.pb.go structdef.pb.go structdef.capnp.go structdef.capnp2.go gencode.schema.gen.go gencode-unsafe.schema.gen.go structdefxdr_generated.go structdef_msgpackgen.go
57+
rm -f Colfer.go FlatBufferA.go msgp_gen.go structdef-gogo.pb.go structdef.pb.go structdef.capnp.go structdef.capnp2.go gencode.schema.gen.go gencode-unsafe.schema.gen.go structdefxdr_generated.go structdef_msgpackgen.go NoTimeA.musgen.go NoTimeAUnsafe.musgen.go
5558
.PHONY: install
5659
install:
5760
go get -u github.com/gogo/protobuf/protoc-gen-gogofaster
@@ -78,3 +81,4 @@ install:
7881
go get -u github.com/200sc/bebop
7982
go get -u github.com/200sc/bebop/main/bebopc-go
8083
go get -u github.com/shamaton/msgpackgen
84+
go get -u github.com/ymz-ncnk/musgo

NoTimeA.musgen.go

Lines changed: 369 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,369 @@
1+
package goserbench
2+
3+
import (
4+
"math"
5+
6+
"github.com/ymz-ncnk/musgo/errs"
7+
)
8+
9+
func (v NoTimeA) MarshalMUS(buf []byte) int {
10+
i := 0
11+
{
12+
length := len(v.Name)
13+
{
14+
uv := uint64(length<<1) ^ uint64(length>>63)
15+
{
16+
for uv >= 0x80 {
17+
buf[i] = byte(uv) | 0x80
18+
uv >>= 7
19+
i++
20+
}
21+
buf[i] = byte(uv)
22+
i++
23+
}
24+
}
25+
i += copy(buf[i:], v.Name)
26+
}
27+
{
28+
uv := uint64(v.BirthDay<<1) ^ uint64(v.BirthDay>>63)
29+
{
30+
for uv >= 0x80 {
31+
buf[i] = byte(uv) | 0x80
32+
uv >>= 7
33+
i++
34+
}
35+
buf[i] = byte(uv)
36+
i++
37+
}
38+
}
39+
{
40+
length := len(v.Phone)
41+
{
42+
uv := uint64(length<<1) ^ uint64(length>>63)
43+
{
44+
for uv >= 0x80 {
45+
buf[i] = byte(uv) | 0x80
46+
uv >>= 7
47+
i++
48+
}
49+
buf[i] = byte(uv)
50+
i++
51+
}
52+
}
53+
i += copy(buf[i:], v.Phone)
54+
}
55+
{
56+
uv := uint64(v.Siblings<<1) ^ uint64(v.Siblings>>63)
57+
{
58+
for uv >= 0x80 {
59+
buf[i] = byte(uv) | 0x80
60+
uv >>= 7
61+
i++
62+
}
63+
buf[i] = byte(uv)
64+
i++
65+
}
66+
}
67+
{
68+
if v.Spouse {
69+
buf[i] = 0x01
70+
} else {
71+
buf[i] = 0x00
72+
}
73+
i++
74+
}
75+
{
76+
uv := math.Float64bits(float64(v.Money))
77+
uv = (uv << 32) | (uv >> 32)
78+
uv = ((uv << 16) & 0xFFFF0000FFFF0000) | ((uv >> 16) & 0x0000FFFF0000FFFF)
79+
uv = ((uv << 8) & 0xFF00FF00FF00FF00) | ((uv >> 8) & 0x00FF00FF00FF00FF)
80+
{
81+
for uv >= 0x80 {
82+
buf[i] = byte(uv) | 0x80
83+
uv >>= 7
84+
i++
85+
}
86+
buf[i] = byte(uv)
87+
i++
88+
}
89+
}
90+
return i
91+
}
92+
93+
func (v *NoTimeA) UnmarshalMUS(buf []byte) (int, error) {
94+
i := 0
95+
var err error
96+
{
97+
var length int
98+
{
99+
var uv uint64
100+
{
101+
if i > len(buf)-1 {
102+
return i, errs.ErrSmallBuf
103+
} else {
104+
shift := 0
105+
done := false
106+
for l, b := range buf[i:] {
107+
if l == 9 && b > 1 {
108+
return i, errs.ErrOverflow
109+
}
110+
if b < 0x80 {
111+
uv = uv | uint64(b)<<shift
112+
done = true
113+
i += l + 1
114+
break
115+
}
116+
uv = uv | uint64(b&0x7F)<<shift
117+
shift += 7
118+
}
119+
if !done {
120+
return i, errs.ErrSmallBuf
121+
}
122+
}
123+
}
124+
uv = (uv >> 1) ^ uint64((int(uv&1)<<63)>>63)
125+
length = int(uv)
126+
}
127+
if length < 0 {
128+
return i, errs.ErrNegativeLength
129+
}
130+
if len(buf) < i+length {
131+
return i, errs.ErrSmallBuf
132+
}
133+
v.Name = string(buf[i : i+length])
134+
i += length
135+
}
136+
if err != nil {
137+
return i, errs.NewFieldError("Name", err)
138+
}
139+
{
140+
var uv uint64
141+
{
142+
if i > len(buf)-1 {
143+
return i, errs.ErrSmallBuf
144+
} else {
145+
shift := 0
146+
done := false
147+
for l, b := range buf[i:] {
148+
if l == 9 && b > 1 {
149+
return i, errs.ErrOverflow
150+
}
151+
if b < 0x80 {
152+
uv = uv | uint64(b)<<shift
153+
done = true
154+
i += l + 1
155+
break
156+
}
157+
uv = uv | uint64(b&0x7F)<<shift
158+
shift += 7
159+
}
160+
if !done {
161+
return i, errs.ErrSmallBuf
162+
}
163+
}
164+
}
165+
uv = (uv >> 1) ^ uint64((int64(uv&1)<<63)>>63)
166+
v.BirthDay = int64(uv)
167+
}
168+
if err != nil {
169+
return i, errs.NewFieldError("BirthDay", err)
170+
}
171+
{
172+
var length int
173+
{
174+
var uv uint64
175+
{
176+
if i > len(buf)-1 {
177+
return i, errs.ErrSmallBuf
178+
} else {
179+
shift := 0
180+
done := false
181+
for l, b := range buf[i:] {
182+
if l == 9 && b > 1 {
183+
return i, errs.ErrOverflow
184+
}
185+
if b < 0x80 {
186+
uv = uv | uint64(b)<<shift
187+
done = true
188+
i += l + 1
189+
break
190+
}
191+
uv = uv | uint64(b&0x7F)<<shift
192+
shift += 7
193+
}
194+
if !done {
195+
return i, errs.ErrSmallBuf
196+
}
197+
}
198+
}
199+
uv = (uv >> 1) ^ uint64((int(uv&1)<<63)>>63)
200+
length = int(uv)
201+
}
202+
if length < 0 {
203+
return i, errs.ErrNegativeLength
204+
}
205+
if len(buf) < i+length {
206+
return i, errs.ErrSmallBuf
207+
}
208+
v.Phone = string(buf[i : i+length])
209+
i += length
210+
}
211+
if err != nil {
212+
return i, errs.NewFieldError("Phone", err)
213+
}
214+
{
215+
var uv uint64
216+
{
217+
if i > len(buf)-1 {
218+
return i, errs.ErrSmallBuf
219+
} else {
220+
shift := 0
221+
done := false
222+
for l, b := range buf[i:] {
223+
if l == 9 && b > 1 {
224+
return i, errs.ErrOverflow
225+
}
226+
if b < 0x80 {
227+
uv = uv | uint64(b)<<shift
228+
done = true
229+
i += l + 1
230+
break
231+
}
232+
uv = uv | uint64(b&0x7F)<<shift
233+
shift += 7
234+
}
235+
if !done {
236+
return i, errs.ErrSmallBuf
237+
}
238+
}
239+
}
240+
uv = (uv >> 1) ^ uint64((int(uv&1)<<63)>>63)
241+
v.Siblings = int(uv)
242+
}
243+
if err != nil {
244+
return i, errs.NewFieldError("Siblings", err)
245+
}
246+
{
247+
if i > len(buf)-1 {
248+
return i, errs.ErrSmallBuf
249+
} else {
250+
if buf[i] == 0x01 {
251+
v.Spouse = true
252+
i++
253+
} else if buf[i] == 0x00 {
254+
v.Spouse = false
255+
i++
256+
} else {
257+
err = errs.ErrWrongByte
258+
}
259+
}
260+
}
261+
if err != nil {
262+
return i, errs.NewFieldError("Spouse", err)
263+
}
264+
{
265+
var uv uint64
266+
{
267+
if i > len(buf)-1 {
268+
return i, errs.ErrSmallBuf
269+
} else {
270+
shift := 0
271+
done := false
272+
for l, b := range buf[i:] {
273+
if l == 9 && b > 1 {
274+
return i, errs.ErrOverflow
275+
}
276+
if b < 0x80 {
277+
uv = uv | uint64(b)<<shift
278+
done = true
279+
i += l + 1
280+
break
281+
}
282+
uv = uv | uint64(b&0x7F)<<shift
283+
shift += 7
284+
}
285+
if !done {
286+
return i, errs.ErrSmallBuf
287+
}
288+
}
289+
}
290+
uv = (uv << 32) | (uv >> 32)
291+
uv = ((uv << 16) & 0xFFFF0000FFFF0000) | ((uv >> 16) & 0x0000FFFF0000FFFF)
292+
uv = ((uv << 8) & 0xFF00FF00FF00FF00) | ((uv >> 8) & 0x00FF00FF00FF00FF)
293+
v.Money = float64(math.Float64frombits(uv))
294+
}
295+
if err != nil {
296+
return i, errs.NewFieldError("Money", err)
297+
}
298+
return i, err
299+
}
300+
301+
func (v NoTimeA) SizeMUS() int {
302+
size := 0
303+
{
304+
length := len(v.Name)
305+
{
306+
uv := uint64(length<<1) ^ uint64(length>>63)
307+
{
308+
for uv >= 0x80 {
309+
uv >>= 7
310+
size++
311+
}
312+
size++
313+
}
314+
}
315+
size += len(v.Name)
316+
}
317+
{
318+
uv := uint64(v.BirthDay<<1) ^ uint64(v.BirthDay>>63)
319+
{
320+
for uv >= 0x80 {
321+
uv >>= 7
322+
size++
323+
}
324+
size++
325+
}
326+
}
327+
{
328+
length := len(v.Phone)
329+
{
330+
uv := uint64(length<<1) ^ uint64(length>>63)
331+
{
332+
for uv >= 0x80 {
333+
uv >>= 7
334+
size++
335+
}
336+
size++
337+
}
338+
}
339+
size += len(v.Phone)
340+
}
341+
{
342+
uv := uint64(v.Siblings<<1) ^ uint64(v.Siblings>>63)
343+
{
344+
for uv >= 0x80 {
345+
uv >>= 7
346+
size++
347+
}
348+
size++
349+
}
350+
}
351+
{
352+
_ = v.Spouse
353+
size++
354+
}
355+
{
356+
uv := math.Float64bits(float64(v.Money))
357+
uv = (uv << 32) | (uv >> 32)
358+
uv = ((uv << 16) & 0xFFFF0000FFFF0000) | ((uv >> 16) & 0x0000FFFF0000FFFF)
359+
uv = ((uv << 8) & 0xFF00FF00FF00FF00) | ((uv >> 8) & 0x00FF00FF00FF00FF)
360+
{
361+
for uv >= 0x80 {
362+
uv >>= 7
363+
size++
364+
}
365+
size++
366+
}
367+
}
368+
return size
369+
}

0 commit comments

Comments
 (0)