Skip to content

Commit ee30717

Browse files
committed
Fix Benchmarks
1 parent 63e808d commit ee30717

File tree

3 files changed

+48
-60
lines changed

3 files changed

+48
-60
lines changed

examples/endpoint/endpoint_test.go

+12-8
Original file line numberDiff line numberDiff line change
@@ -53,20 +53,24 @@ func TestEndpoint(t *testing.T) {
5353
func BenchmarkEndpoint(b *testing.B) {
5454
for _, test := range endpointTests {
5555
b.Run(fmt.Sprintf("marshal-%s", test.eid), func(b *testing.B) {
56-
e := newEndpointID(test.eid)
56+
for i := 0; i < b.N; i++ {
57+
e := newEndpointID(test.eid)
5758

58-
buff := new(bytes.Buffer)
59-
if err := cboring.Marshal(&e, buff); err != nil {
60-
b.Fatalf("Marshaling %s failed: %v", test.eid, err)
59+
buff := new(bytes.Buffer)
60+
if err := cboring.Marshal(&e, buff); err != nil {
61+
b.Fatalf("Marshaling %s failed: %v", test.eid, err)
62+
}
6163
}
6264
})
6365

6466
b.Run(fmt.Sprintf("unmarshal-%s", test.eid), func(b *testing.B) {
65-
e := endpointID{}
67+
for i := 0; i < b.N; i++ {
68+
e := endpointID{}
6669

67-
buff := bytes.NewBuffer(test.cbor)
68-
if err := cboring.Unmarshal(&e, buff); err != nil {
69-
b.Fatalf("Unmarshaling %s failed: %v", test.eid, err)
70+
buff := bytes.NewBuffer(test.cbor)
71+
if err := cboring.Unmarshal(&e, buff); err != nil {
72+
b.Fatalf("Unmarshaling %s failed: %v", test.eid, err)
73+
}
7074
}
7175
})
7276
}

examples/payloadblock/payload_test.go

+13-24
Original file line numberDiff line numberDiff line change
@@ -55,30 +55,19 @@ func BenchmarkPayload(b *testing.B) {
5555
rand.Seed(0)
5656
rand.Read(rndData)
5757

58-
b.Run(fmt.Sprintf("marshal-%d", size), func(b *testing.B) {
59-
// Setup a buffer, like in the unmarshaling test
60-
pbTmp := newPayloadBlock(rndData)
61-
62-
buff := new(bytes.Buffer)
63-
if err := cboring.Marshal(&pbTmp, buff); err != nil {
64-
b.Fatalf("Marshaling failed: %v", err)
65-
}
66-
67-
// Benchmark starts here
68-
b.ResetTimer()
69-
70-
pb := payloadBlock{}
71-
if err := cboring.Unmarshal(&pb, buff); err != nil {
72-
b.Fatalf("Unmarshaling failed: %v", err)
73-
}
74-
})
75-
76-
b.Run(fmt.Sprintf("unmarshal-%d", size), func(b *testing.B) {
77-
pb := newPayloadBlock(rndData)
78-
79-
buff := new(bytes.Buffer)
80-
if err := cboring.Marshal(&pb, buff); err != nil {
81-
b.Fatalf("Marshaling failed: %v", err)
58+
b.Run(fmt.Sprintf("%d", size), func(b *testing.B) {
59+
for i := 0; i < b.N; i++ {
60+
pbTmp := newPayloadBlock(rndData)
61+
62+
buff := new(bytes.Buffer)
63+
if err := cboring.Marshal(&pbTmp, buff); err != nil {
64+
b.Fatalf("Marshaling failed: %v", err)
65+
}
66+
67+
pb := payloadBlock{}
68+
if err := cboring.Unmarshal(&pb, buff); err != nil {
69+
b.Fatalf("Unmarshaling failed: %v", err)
70+
}
8271
}
8372
})
8473
}

strings_test.go

+23-28
Original file line numberDiff line numberDiff line change
@@ -59,38 +59,33 @@ func BenchmarkByteString(b *testing.B) {
5959
rand.Seed(0)
6060
rand.Read(rndData)
6161

62-
b.Run(fmt.Sprintf("r%d", size), func(b *testing.B) {
63-
// The benchmark will be executed in parallel. Therefore each thread
64-
// needs its own buffer.
65-
buff := new(bytes.Buffer)
66-
WriteByteStringLen(uint64(size), buff)
67-
buff.Write(rndData)
68-
69-
// Don't measure setup time
70-
b.ResetTimer()
71-
72-
data, err := ReadByteString(buff)
73-
if err != nil {
74-
b.Fatal(err)
75-
} else if len(data) != size {
76-
b.Fatalf("Read wrong length %d != %d", len(data), size)
77-
}
78-
})
62+
b.Run(fmt.Sprintf("%d", size), func(b *testing.B) {
63+
for i := 0; i < b.N; i++ {
64+
buff := new(bytes.Buffer)
65+
if err := WriteByteString(rndData, buff); err != nil {
66+
b.Fatal(err)
67+
}
7968

80-
b.Run(fmt.Sprintf("w%d", size), func(b *testing.B) {
81-
buff := new(bytes.Buffer)
82-
if err := WriteByteString(rndData, buff); err != nil {
83-
b.Fatal(err)
84-
}
69+
// Buff should contain size + CBOR's overhead amount of bytes.
70+
ls := []int{size + 1, size + 2, size + 3, size + 5, size + 9}
71+
lsFlag := false
72+
for _, l := range ls {
73+
if l == buff.Len() {
74+
lsFlag = true
75+
break
76+
}
77+
}
78+
if !lsFlag {
79+
b.Fatalf("Wrote wrong length %d", buff.Len())
80+
}
8581

86-
// Buff should contain size + CBOR's overhead amount of bytes.
87-
ls := []int{size + 1, size + 2, size + 3, size + 5, size + 9}
88-
for _, l := range ls {
89-
if l == buff.Len() {
90-
return
82+
data, err := ReadByteString(buff)
83+
if err != nil {
84+
b.Fatal(err)
85+
} else if len(data) != size {
86+
b.Fatalf("Read wrong length %d != %d", len(data), size)
9187
}
9288
}
93-
b.Fatalf("Wrote wrong length %d", buff.Len())
9489
})
9590
}
9691
}

0 commit comments

Comments
 (0)