performance_tests/consolidate_results.py (34 lines of code) (raw):

# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 """Script for consolidating results for execution times""" import argparse import csv import numpy as np def calculate_statistics(_csv_file): """Calculate average, trimmed average, minimum, maximum and p99 statistics for execution times in a CSV file.""" with open(_csv_file, 'r', encoding='utf-8') as file: reader = csv.reader(file) data = [float(row[0]) for row in reader] output_stats = {} # Calculate statistics if data: data = np.sort(data) output_stats['total_entries'] = len(data) output_stats['average'] = np.mean(data) output_stats['trimmed_average_99_bottom'] = np.mean(data[0:int(0.99 * len(data))]) output_stats['minimum'] = min(data) output_stats['maximum'] = max(data) output_stats['perc_99'] = np.percentile(data, 99) return output_stats return None if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('csv_file', help='csv file containing the outputs of execution times for n_iter iterations') args = parser.parse_args() statistics = calculate_statistics(args.csv_file) if statistics: print("CSV File:", args.csv_file) print("Total Entries:", statistics['total_entries']) print("Average:", statistics['average']) print("Bottom 99th percentile trimmed average:", statistics['trimmed_average_99_bottom']) print("Minimum:", statistics['minimum']) print("Maximum:", statistics['maximum']) print("99th percentile:", statistics['perc_99']) else: print("No data found in the CSV file.")