@@ -98,68 +98,62 @@ func logStats(b *testing.B, cnd bool, name string, cg *callgraph.Graph, main *ss
98
98
}
99
99
100
100
func BenchmarkStatic (b * testing.B ) {
101
- b . StopTimer ()
101
+
102
102
prog , main := example (b )
103
- b .StartTimer ()
104
103
105
- for i := 0 ; i < b . N ; i ++ {
104
+ for i := 0 ; b . Loop () ; i ++ {
106
105
cg := static .CallGraph (prog )
107
106
logStats (b , i == 0 , "static" , cg , main )
108
107
}
109
108
}
110
109
111
110
func BenchmarkCHA (b * testing.B ) {
112
- b . StopTimer ()
111
+
113
112
prog , main := example (b )
114
- b .StartTimer ()
115
113
116
- for i := 0 ; i < b . N ; i ++ {
114
+ for i := 0 ; b . Loop () ; i ++ {
117
115
cg := cha .CallGraph (prog )
118
116
logStats (b , i == 0 , "cha" , cg , main )
119
117
}
120
118
}
121
119
122
120
func BenchmarkRTA (b * testing.B ) {
123
- b . StopTimer ()
121
+
124
122
_ , main := example (b )
125
- b .StartTimer ()
126
123
127
- for i := 0 ; i < b . N ; i ++ {
124
+ for i := 0 ; b . Loop () ; i ++ {
128
125
res := rta .Analyze ([]* ssa.Function {main }, true )
129
126
cg := res .CallGraph
130
127
logStats (b , i == 0 , "rta" , cg , main )
131
128
}
132
129
}
133
130
134
131
func BenchmarkVTA (b * testing.B ) {
135
- b . StopTimer ()
132
+
136
133
prog , main := example (b )
137
- b .StartTimer ()
138
134
139
- for i := 0 ; i < b . N ; i ++ {
135
+ for i := 0 ; b . Loop () ; i ++ {
140
136
cg := vta .CallGraph (ssautil .AllFunctions (prog ), cha .CallGraph (prog ))
141
137
logStats (b , i == 0 , "vta" , cg , main )
142
138
}
143
139
}
144
140
145
141
func BenchmarkVTA2 (b * testing.B ) {
146
- b . StopTimer ()
142
+
147
143
prog , main := example (b )
148
- b .StartTimer ()
149
144
150
- for i := 0 ; i < b . N ; i ++ {
145
+ for i := 0 ; b . Loop () ; i ++ {
151
146
vta1 := vta .CallGraph (ssautil .AllFunctions (prog ), cha .CallGraph (prog ))
152
147
cg := vta .CallGraph (reaches (main , vta1 , true ), vta1 )
153
148
logStats (b , i == 0 , "vta2" , cg , main )
154
149
}
155
150
}
156
151
157
152
func BenchmarkVTA3 (b * testing.B ) {
158
- b . StopTimer ()
153
+
159
154
prog , main := example (b )
160
- b .StartTimer ()
161
155
162
- for i := 0 ; i < b . N ; i ++ {
156
+ for i := 0 ; b . Loop () ; i ++ {
163
157
vta1 := vta .CallGraph (ssautil .AllFunctions (prog ), cha .CallGraph (prog ))
164
158
vta2 := vta .CallGraph (reaches (main , vta1 , true ), vta1 )
165
159
cg := vta .CallGraph (reaches (main , vta2 , true ), vta2 )
@@ -168,23 +162,21 @@ func BenchmarkVTA3(b *testing.B) {
168
162
}
169
163
170
164
func BenchmarkVTAAlt (b * testing.B ) {
171
- b . StopTimer ()
165
+
172
166
prog , main := example (b )
173
- b .StartTimer ()
174
167
175
- for i := 0 ; i < b . N ; i ++ {
168
+ for i := 0 ; b . Loop () ; i ++ {
176
169
cha := cha .CallGraph (prog )
177
170
cg := vta .CallGraph (reaches (main , cha , true ), cha ) // start from only functions reachable by CHA.
178
171
logStats (b , i == 0 , "vta-alt" , cg , main )
179
172
}
180
173
}
181
174
182
175
func BenchmarkVTAAlt2 (b * testing.B ) {
183
- b . StopTimer ()
176
+
184
177
prog , main := example (b )
185
- b .StartTimer ()
186
178
187
- for i := 0 ; i < b . N ; i ++ {
179
+ for i := 0 ; b . Loop () ; i ++ {
188
180
cha := cha .CallGraph (prog )
189
181
vta1 := vta .CallGraph (reaches (main , cha , true ), cha )
190
182
cg := vta .CallGraph (reaches (main , vta1 , true ), vta1 )
0 commit comments