-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathencode_bench_test.go
154 lines (140 loc) · 4.16 KB
/
encode_bench_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
package ethrlp
import "testing"
func benchmarkStringCommon(b *testing.B, value string) {
b.Helper()
for i := 0; i < b.N; i++ {
_ = EncodeString(value)
}
}
func BenchmarkEncode_String_Short(b *testing.B) {
value := "Lorem ipsum dolor sit amet, consectetur adipisicing eli"
b.ResetTimer()
benchmarkStringCommon(b, value)
}
func BenchmarkEncode_String_Medium(b *testing.B) {
value := "Lorem ipsum dolor sit amet, consectetur adipisicing elit"
b.ResetTimer()
benchmarkStringCommon(b, value)
}
func BenchmarkEncode_String_Long(b *testing.B) {
value := "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur mauris magna, suscipit sed vehicula non, iaculis faucibus tortor. Proin suscipit ultricies malesuada. Duis tortor elit, dictum quis tristique eu, ultrices at risus. Morbi a est imperdiet mi ullamcorper aliquet suscipit nec lorem. Aenean quis leo mollis, vulputate elit varius, consequat enim. Nulla ultrices turpis justo, et posuere urna consectetur nec. Proin non convallis metus. Donec tempor ipsum in mauris congue sollicitudin. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse convallis sem vel massa faucibus, eget lacinia lacus tempor. Nulla quis ultricies purus. Proin auctor rhoncus nibh condimentum mollis. Aliquam consequat enim at metus luctus, a eleifend purus egestas. Curabitur at nibh metus. Nam bibendum, neque at auctor tristique, lorem libero aliquet arcu, non interdum tellus lectus sit amet eros. Cras rhoncus, metus ac ornare cursus, dolor justo ultrices metus, at ullamcorper volutpat"
b.ResetTimer()
benchmarkStringCommon(b, value)
}
func BenchmarkEncode_Array_Small(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = EncodeArray([][]byte{
EncodeString("aaa"),
EncodeString("bbb"),
})
}
}
func BenchmarkEncode_Array_Medium(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = EncodeArray([][]byte{
EncodeString("aaa"),
EncodeString("bbb"),
EncodeString("ccc"),
EncodeString("ddd"),
EncodeString("eee"),
EncodeString("fff"),
EncodeString("ggg"),
EncodeString("hhh"),
EncodeString("iii"),
EncodeString("jjj"),
EncodeString("kkk"),
EncodeString("lll"),
EncodeString("mmm"),
EncodeString("nnn"),
EncodeString("ooo"),
})
}
}
func BenchmarkEncode_Array_Large(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = EncodeArray([][]byte{
EncodeString("aaa"),
EncodeString("bbb"),
EncodeString("ccc"),
EncodeString("ddd"),
EncodeString("eee"),
EncodeString("fff"),
EncodeString("ggg"),
EncodeString("hhh"),
EncodeString("iii"),
EncodeString("jjj"),
EncodeString("kkk"),
EncodeString("lll"),
EncodeString("mmm"),
EncodeString("nnn"),
EncodeString("ooo"),
EncodeString("aaa"),
EncodeString("bbb"),
EncodeString("ccc"),
EncodeString("ddd"),
EncodeString("eee"),
EncodeString("fff"),
EncodeString("ggg"),
EncodeString("hhh"),
EncodeString("iii"),
EncodeString("jjj"),
EncodeString("kkk"),
EncodeString("lll"),
EncodeString("mmm"),
EncodeString("nnn"),
EncodeString("ooo"),
EncodeString("aaa"),
EncodeString("bbb"),
EncodeString("ccc"),
EncodeString("ddd"),
EncodeString("eee"),
EncodeString("fff"),
EncodeString("ggg"),
EncodeString("hhh"),
EncodeString("iii"),
EncodeString("jjj"),
EncodeString("kkk"),
EncodeString("lll"),
EncodeString("mmm"),
EncodeString("nnn"),
EncodeString("ooo"),
})
}
}
func BenchmarkEncode_Array_Nested_Short(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = EncodeArray([][]byte{
EncodeString("zw"),
EncodeArray([][]byte{
EncodeInt(4),
}),
EncodeInt(1),
})
}
}
func BenchmarkEncode_Array_Nested_Long(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = EncodeArray([][]byte{
EncodeArray([][]byte{
EncodeString("asdf"),
EncodeString("qwer"),
EncodeString("zxcv"),
}),
EncodeArray([][]byte{
EncodeString("asdf"),
EncodeString("qwer"),
EncodeString("zxcv"),
}),
EncodeArray([][]byte{
EncodeString("asdf"),
EncodeString("qwer"),
EncodeString("zxcv"),
}),
EncodeArray([][]byte{
EncodeString("asdf"),
EncodeString("qwer"),
EncodeString("zxcv"),
}),
})
}
}