Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. from time import time
  2.  
  3.  
  4. class ResultObject(list):
  5. def __init__(self, name, number):
  6. self.name = name
  7. self.number = number
  8.  
  9. def get_avg(self):
  10. return sum(self) / len(self)
  11.  
  12. def get_min(self):
  13. return min(self)
  14.  
  15. def get_max(self):
  16. return max(self)
  17.  
  18. def __str__(self):
  19. return f'nĀ°{self.number} with name: "{self.name}"'
  20.  
  21.  
  22. def measure(*functions, iterations=10, **fargs):
  23. print('--- starting measurements ---', end='')
  24. results = []
  25. total_start_time = time()
  26. function_number = 0
  27. for f in functions:
  28. function_number += 1
  29. current_result = ResultObject(f.__name__, function_number)
  30. print(f'\nfunction {current_result}')
  31. for i in range(1, iterations + 1):
  32. print(f'\rrun {i} of {iterations}', end='')
  33. start_time = time()
  34. f(**fargs)
  35. end_time = time()
  36. current_result.append(end_time - start_time)
  37. results.append(current_result)
  38. total_end_time = time()
  39. for result in results:
  40. print(f'\nfunction {result.number}: {result.name} took'
  41. f'\nmin: {result.get_min()} seconds\nmax: {result.get_max()} seconds\navg: {result.get_avg()} seconds')
  42. print(f'\n--- took {total_end_time - total_start_time} seconds total ---')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement