@@ -10,20 +10,68 @@ import (
10
10
11
11
const N = 20
12
12
13
- func BenchmarkMakeSlice (b * testing.B ) {
14
- var x []byte
15
- for i := 0 ; i < b .N ; i ++ {
16
- x = make ([]byte , 32 )
17
- _ = x
18
- }
19
- }
20
-
21
13
type (
22
14
struct24 struct { a , b , c int64 }
23
15
struct32 struct { a , b , c , d int64 }
24
16
struct40 struct { a , b , c , d , e int64 }
25
17
)
26
18
19
+ func BenchmarkMakeSlice (b * testing.B ) {
20
+ const length = 2
21
+ b .Run ("Byte" , func (b * testing.B ) {
22
+ var x []byte
23
+ for i := 0 ; i < b .N ; i ++ {
24
+ x = make ([]byte , length , 2 * length )
25
+ _ = x
26
+ }
27
+ })
28
+ b .Run ("Int16" , func (b * testing.B ) {
29
+ var x []int16
30
+ for i := 0 ; i < b .N ; i ++ {
31
+ x = make ([]int16 , length , 2 * length )
32
+ _ = x
33
+ }
34
+ })
35
+ b .Run ("Int" , func (b * testing.B ) {
36
+ var x []int
37
+ for i := 0 ; i < b .N ; i ++ {
38
+ x = make ([]int , length , 2 * length )
39
+ _ = x
40
+ }
41
+ })
42
+ b .Run ("Ptr" , func (b * testing.B ) {
43
+ var x []* byte
44
+ for i := 0 ; i < b .N ; i ++ {
45
+ x = make ([]* byte , length , 2 * length )
46
+ _ = x
47
+ }
48
+ })
49
+ b .Run ("Struct" , func (b * testing.B ) {
50
+ b .Run ("24" , func (b * testing.B ) {
51
+ var x []struct24
52
+ for i := 0 ; i < b .N ; i ++ {
53
+ x = make ([]struct24 , length , 2 * length )
54
+ _ = x
55
+ }
56
+ })
57
+ b .Run ("32" , func (b * testing.B ) {
58
+ var x []struct32
59
+ for i := 0 ; i < b .N ; i ++ {
60
+ x = make ([]struct32 , length , 2 * length )
61
+ _ = x
62
+ }
63
+ })
64
+ b .Run ("40" , func (b * testing.B ) {
65
+ var x []struct40
66
+ for i := 0 ; i < b .N ; i ++ {
67
+ x = make ([]struct40 , length , 2 * length )
68
+ _ = x
69
+ }
70
+ })
71
+
72
+ })
73
+ }
74
+
27
75
func BenchmarkGrowSlice (b * testing.B ) {
28
76
b .Run ("Byte" , func (b * testing.B ) {
29
77
x := make ([]byte , 9 )
0 commit comments