@@ -24,7 +24,6 @@ import (
24
24
25
25
"github.com/go-logr/glogr"
26
26
"github.com/go-logr/logr"
27
- "github.com/golang/glog"
28
27
)
29
28
30
29
func init () {
@@ -33,99 +32,132 @@ func init() {
33
32
os .Stderr , _ = os .Open ("/dev/null" )
34
33
}
35
34
36
- func BenchmarkGlogInfoOneArg (b * testing.B ) {
35
+ //go:noinline
36
+ func doInfoOneArg (b * testing.B , log logr.Logger ) {
37
37
for i := 0 ; i < b .N ; i ++ {
38
- glog .Info ("this is" , "a" , "string" )
38
+ log .Info ("this is" , "a" , "string" )
39
39
}
40
40
}
41
41
42
- func BenchmarkInfoOneArg (b * testing.B ) {
43
- var log logr.Logger = glogr .New ()
44
-
42
+ //go:noinline
43
+ func doInfoSeveralArgs (b * testing.B , log logr.Logger ) {
45
44
for i := 0 ; i < b .N ; i ++ {
46
- log .Info ("this is" , "a" , "string" )
45
+ log .Info ("multi" ,
46
+ "bool" , true , "string" , "str" , "int" , 42 ,
47
+ "float" , 3.14 , "struct" , struct { X , Y int }{93 , 76 })
47
48
}
48
49
}
49
50
50
- func BenchmarkGlogInfoSeveralArgs (b * testing.B ) {
51
+ //go:noinline
52
+ func doV0Info (b * testing.B , log logr.Logger ) {
51
53
for i := 0 ; i < b .N ; i ++ {
52
- glog .Info ("multi" ,
54
+ log . V ( 0 ) .Info ("multi" ,
53
55
"bool" , true , "string" , "str" , "int" , 42 ,
54
56
"float" , 3.14 , "struct" , struct { X , Y int }{93 , 76 })
55
57
}
56
58
}
57
59
58
- func BenchmarkInfoSeveralArgs (b * testing.B ) {
59
- var log logr.Logger = glogr .New ()
60
-
60
+ //go:noinline
61
+ func doV9Info (b * testing.B , log logr.Logger ) {
61
62
for i := 0 ; i < b .N ; i ++ {
62
- log .Info ("multi" ,
63
+ log .V ( 9 ). Info ("multi" ,
63
64
"bool" , true , "string" , "str" , "int" , 42 ,
64
65
"float" , 3.14 , "struct" , struct { X , Y int }{93 , 76 })
65
66
}
66
67
}
67
68
68
- func BenchmarkGlogInfoV0 (b * testing.B ) {
69
+ //go:noinline
70
+ func doError (b * testing.B , log logr.Logger ) {
71
+ err := fmt .Errorf ("error message" )
69
72
for i := 0 ; i < b .N ; i ++ {
70
- glog . V ( 0 ). Info ( "multi" ,
73
+ log . Error ( err , "multi" ,
71
74
"bool" , true , "string" , "str" , "int" , 42 ,
72
75
"float" , 3.14 , "struct" , struct { X , Y int }{93 , 76 })
73
76
}
74
77
}
75
78
76
- func BenchmarkV0Info (b * testing.B ) {
77
- var log logr.Logger = glogr .New ()
78
-
79
+ //go:noinline
80
+ func doWithValues (b * testing.B , log logr.Logger ) {
79
81
for i := 0 ; i < b .N ; i ++ {
80
- log .V (0 ).Info ("multi" ,
81
- "bool" , true , "string" , "str" , "int" , 42 ,
82
- "float" , 3.14 , "struct" , struct { X , Y int }{93 , 76 })
82
+ l := log .WithValues ("k1" , "v1" , "k2" , "v2" )
83
+ _ = l
83
84
}
84
85
}
85
86
86
- func BenchmarkGlogV9Info (b * testing.B ) {
87
+ //go:noinline
88
+ func doWithName (b * testing.B , log logr.Logger ) {
87
89
for i := 0 ; i < b .N ; i ++ {
88
- glog .V (9 ).Info ("multi" ,
89
- "bool" , true , "string" , "str" , "int" , 42 ,
90
- "float" , 3.14 , "struct" , struct { X , Y int }{93 , 76 })
90
+ l := log .WithName ("name" )
91
+ _ = l
91
92
}
92
93
}
93
94
94
- func BenchmarkV9Info (b * testing.B ) {
95
+ func BenchmarkDiscardInfoOneArg (b * testing.B ) {
95
96
var log logr.Logger = glogr .New ()
97
+ doInfoOneArg (b , log )
98
+ }
96
99
97
- for i := 0 ; i < b .N ; i ++ {
98
- log .V (9 ).Info ("multi" ,
99
- "bool" , true , "string" , "str" , "int" , 42 ,
100
- "float" , 3.14 , "struct" , struct { X , Y int }{93 , 76 })
101
- }
100
+ func BenchmarkDiscardInfoSeveralArgs (b * testing.B ) {
101
+ var log logr.Logger = glogr .New ()
102
+ doInfoSeveralArgs (b , log )
102
103
}
103
104
104
- func BenchmarkError (b * testing.B ) {
105
+ func BenchmarkDiscardV0Info (b * testing.B ) {
105
106
var log logr.Logger = glogr .New ()
107
+ doV0Info (b , log )
108
+ }
106
109
107
- err := fmt .Errorf ("error message" )
108
- for i := 0 ; i < b .N ; i ++ {
109
- log .Error (err , "multi" ,
110
- "bool" , true , "string" , "str" , "int" , 42 ,
111
- "float" , 3.14 , "struct" , struct { X , Y int }{93 , 76 })
112
- }
110
+ func BenchmarkDiscardV9Info (b * testing.B ) {
111
+ var log logr.Logger = glogr .New ()
112
+ doV9Info (b , log )
113
113
}
114
114
115
- func BenchmarkWithValues (b * testing.B ) {
115
+ func BenchmarkDiscardError (b * testing.B ) {
116
116
var log logr.Logger = glogr .New ()
117
+ doError (b , log )
118
+ }
117
119
118
- for i := 0 ; i < b .N ; i ++ {
119
- l := log .WithValues ("k1" , "v1" , "k2" , "v2" )
120
- _ = l
121
- }
120
+ func BenchmarkDiscardWithValues (b * testing.B ) {
121
+ var log logr.Logger = glogr .New ()
122
+ doWithValues (b , log )
122
123
}
123
124
124
- func BenchmarkWithName (b * testing.B ) {
125
+ func BenchmarkDiscardWithName (b * testing.B ) {
125
126
var log logr.Logger = glogr .New ()
127
+ doWithName (b , log )
128
+ }
126
129
127
- for i := 0 ; i < b .N ; i ++ {
128
- l := log .WithName ("name" )
129
- _ = l
130
- }
130
+ func BenchmarkFuncrInfoOneArg (b * testing.B ) {
131
+ var log logr.Logger = glogr .New ()
132
+ doInfoOneArg (b , log )
133
+ }
134
+
135
+ func BenchmarkFuncrInfoSeveralArgs (b * testing.B ) {
136
+ var log logr.Logger = glogr .New ()
137
+ doInfoSeveralArgs (b , log )
138
+ }
139
+
140
+ func BenchmarkFuncrV0Info (b * testing.B ) {
141
+ var log logr.Logger = glogr .New ()
142
+ doV0Info (b , log )
143
+ }
144
+
145
+ func BenchmarkFuncrV9Info (b * testing.B ) {
146
+ var log logr.Logger = glogr .New ()
147
+ doV9Info (b , log )
148
+ }
149
+
150
+ func BenchmarkFuncrError (b * testing.B ) {
151
+ var log logr.Logger = glogr .New ()
152
+ doError (b , log )
153
+ }
154
+
155
+ func BenchmarkFuncrWithValues (b * testing.B ) {
156
+ var log logr.Logger = glogr .New ()
157
+ doWithValues (b , log )
158
+ }
159
+
160
+ func BenchmarkFuncrWithName (b * testing.B ) {
161
+ var log logr.Logger = glogr .New ()
162
+ doWithName (b , log )
131
163
}
0 commit comments