perf_stats.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. """Computes statistiscs from raw performance results."""
  2. import sys
  3. import argparse
  4. from collections import defaultdict
  5. import utils
  6. def main():
  7. arg_parser = argparse.ArgumentParser()
  8. arg_parser.add_argument('input', help='The performance data file.')
  9. args = arg_parser.parse_args()
  10. perf_data = utils.parse_perf_data(args.input)
  11. for quantity, opt_level_dict in perf_data.items():
  12. for opt_level, data_points in opt_level_dict:
  13. perf_per_test = defaultdict(list)
  14. for test_name, measurement in data_points:
  15. perf_per_test[test_name].append(measurement)
  16. for test_name, measurement_list in perf_per_test.items():
  17. utils.write_perf_entry_to_stream(
  18. test_name, opt_level, quantity,
  19. utils.mean(measurement_list), sys.stdout)
  20. if len(measurement_list) > 1:
  21. utils.write_perf_entry_to_stream(
  22. test_name, opt_level, quantity + '-standard-deviation',
  23. utils.standard_deviation(measurement_list), sys.stdout)
  24. utils.write_perf_entry_to_stream(
  25. test_name, opt_level, quantity + '-sample-size',
  26. len(measurement_list), sys.stdout)
  27. if __name__ == '__main__':
  28. main()