77
88
99def accumulate (data_file ):
10- regex = re .compile (r'^([a-z]+).+?:\s+(\d+(?:\.\d+)(?:e[+-]\d+)?)' )
10+ regex = re .compile (r'^([a-z]+).+?(\d+\.\d+) :\s+(\d+(?:\.\d+)(?:e[+-]\d+)?)' )
1111 timings = dict ()
12+ times = dict ()
1213 for line in data_file :
1314 match = regex .search (line )
1415 if match :
1516 test = match .group (1 )
1617 time = float (match .group (2 ))
18+ duration = float (match .group (3 ))
1719 if test not in timings :
1820 timings [test ] = list ()
19- timings [test ].append (time )
20- return timings
21+ times [test ] = list ()
22+ timings [test ].append (duration )
23+ times [test ].append (time )
24+ data = dict ()
25+ for test in timings :
26+ data [test ] = np .array ([times [test ], timings [test ]]).T
27+ return data
2128
2229
23- def print_stats (test , data_list ):
30+ def print_stats (test , data ):
2431 print (f'{ test } :' )
25- data = np .array (data_list )
2632 print (f' min: { data .min ()} ' )
2733 print (f' median: { np .median (data )} ' )
2834 print (f' mean: { data .mean ()} ' )
2935 print (f' max: { data .max ()} ' )
36+ print (f' stddev: { np .std (data )} ' )
3037 print (f' n: { len (data )} ' )
3138
3239
@@ -36,7 +43,7 @@ def main():
3643 options = arg_parser .parse_args ()
3744 timings = accumulate (options .file )
3845 for test , data_list in timings .items ():
39- print_stats (test , data_list )
46+ print_stats (test , data_list [:, 1 ] )
4047 return 0
4148
4249
0 commit comments