@@ -157,6 +157,7 @@ def run(self):
157
157
print ("### start benchmark ... " )
158
158
159
159
bench_func = self ._get_attr (ATTR_BENCHMARK )
160
+ durations = []
160
161
if bench_func and hasattr (bench_func , '__call__' ):
161
162
if self .warmup :
162
163
print ("### warming up for %s iterations ... " % self .warmup )
@@ -166,17 +167,23 @@ def run(self):
166
167
for iteration in range (self .iterations ):
167
168
start = time ()
168
169
bench_func (* args )
169
- duration = "%.3f" % (time () - start )
170
+ duration = time () - start
171
+ durations .append (duration )
172
+ duration_str = "%.3f" % duration
170
173
if self ._run_once :
171
- print ("@@@ name=%s, duration=%s" % (self .bench_module .__name__ , duration ))
174
+ print ("@@@ name=%s, duration=%s" % (self .bench_module .__name__ , duration_str ))
172
175
else :
173
- print ("### iteration=%s, name=%s, duration=%s" % (iteration , self .bench_module .__name__ , duration ))
176
+ print ("### iteration=%s, name=%s, duration=%s" % (iteration , self .bench_module .__name__ , duration_str ))
174
177
175
178
print (_HRULE )
176
179
print ("### teardown ... " )
177
180
self ._call_attr (ATTR_TEARDOWN )
178
181
print ("### benchmark complete" )
179
182
print (_HRULE )
183
+ print ("### BEST duration: %.3f s" % min (durations ))
184
+ print ("### WORST duration: %.3f s" % max (durations ))
185
+ print ("### AVG duration: %.3f" % (sum (durations ) / len (durations )))
186
+ print (_HRULE )
180
187
181
188
182
189
def run_benchmark (args ):
0 commit comments