"""Computes statistiscs from raw performance results.""" import sys import argparse from collections import defaultdict import utils def main(): arg_parser = argparse.ArgumentParser() arg_parser.add_argument('input', help='The performance data file.') args = arg_parser.parse_args() perf_data = utils.parse_perf_data(args.input) for quantity, opt_level_dict in perf_data.items(): for opt_level, data_points in opt_level_dict: perf_per_test = defaultdict(list) for test_name, measurement in data_points: perf_per_test[test_name].append(measurement) for test_name, measurement_list in perf_per_test.items(): utils.write_perf_entry_to_stream( test_name, opt_level, quantity, utils.mean(measurement_list), sys.stdout) if len(measurement_list) > 1: utils.write_perf_entry_to_stream( test_name, opt_level, quantity + '-standard-deviation', utils.standard_deviation(measurement_list), sys.stdout) utils.write_perf_entry_to_stream( test_name, opt_level, quantity + '-sample-size', len(measurement_list), sys.stdout) if __name__ == '__main__': main()