Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from time import time
- class ResultObject(list):
- def __init__(self, name, number):
- self.name = name
- self.number = number
- def get_avg(self):
- return sum(self) / len(self)
- def get_min(self):
- return min(self)
- def get_max(self):
- return max(self)
- def __str__(self):
- return f'nĀ°{self.number} with name: "{self.name}"'
- def measure(*functions, iterations=10, **fargs):
- print('--- starting measurements ---', end='')
- results = []
- total_start_time = time()
- function_number = 0
- for f in functions:
- function_number += 1
- current_result = ResultObject(f.__name__, function_number)
- print(f'\nfunction {current_result}')
- for i in range(1, iterations + 1):
- print(f'\rrun {i} of {iterations}', end='')
- start_time = time()
- f(**fargs)
- end_time = time()
- current_result.append(end_time - start_time)
- results.append(current_result)
- total_end_time = time()
- for result in results:
- print(f'\nfunction {result.number}: {result.name} took'
- f'\nmin: {result.get_min()} seconds\nmax: {result.get_max()} seconds\navg: {result.get_avg()} seconds')
- print(f'\n--- took {total_end_time - total_start_time} seconds total ---')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement