diff --git a/script/asv_result_time.py b/script/asv_result_time.py index 1e7737a8282a13fa59ef8476e41221778961cbc5_c2NyaXB0L2Fzdl9yZXN1bHRfdGltZS5weQ==..d0b30ec6cf7ee13ca89d972a3597ce54c9feca63_c2NyaXB0L2Fzdl9yZXN1bHRfdGltZS5weQ== 100755 --- a/script/asv_result_time.py +++ b/script/asv_result_time.py @@ -6,7 +6,14 @@ import sys -def main(): - with open(sys.argv[1], 'r') as f: - result = json.load(f) +def split_name(name): + return name + + +def read_result_file(result_file): + with open(result_file, "r") as f: + return json.load(f) + + +def parse_result_file(result): times = {} @@ -12,3 +19,3 @@ times = {} - mname = 0 + total_time = datetime.timedelta() @@ -14,4 +21,7 @@ total_time = datetime.timedelta() - for name, start in result['started_at'].items(): - times[name] = datetime.timedelta(seconds=(result['ended_at'][name] - start) / 1000.) + + for name, start in result["started_at"].items(): + times[name] = datetime.timedelta( + seconds=(result["ended_at"][name] - start) / 1000.0 + ) total_time += times[name] @@ -17,6 +27,10 @@ total_time += times[name] - mname = max(mname, len(name)) - fmt = '{:<70} {:>10} {:>10}%' - print(fmt.format('Benchmark', 'Time', '')) - print(fmt.format('Total', total_time, '100')) + + return times, total_time + + +def format_results(times, total_time): + fmt = "{:<70} {:>10} {:>10}%" + print(fmt.format("Benchmark", "Time", "")) + print(fmt.format("Total", total_time, "100")) for name, btime in sorted(times.items(), key=operator.itemgetter(1), reverse=True): @@ -22,5 +36,5 @@ for name, btime in sorted(times.items(), key=operator.itemgetter(1), reverse=True): - percent = '%.2f' % (btime.total_seconds() / total_time.total_seconds() * 100,) + percent = "%.2f" % (btime.total_seconds() / total_time.total_seconds() * 100,) print(fmt.format(name, btime, percent)) @@ -24,5 +38,13 @@ print(fmt.format(name, btime, percent)) -if __name__ == '__main__': - main() +def main(result_file): + result = read_result_file(result_file) + + times, total_time = parse_result_file(result) + + format_results(times, total_time) + + +if __name__ == "__main__": + main(sys.argv[1])