Код: Выделить всё
def measure_performance(func):
@wraps(func)
def wrapper_func(*args, **kwargs):
tracemalloc.start()
start_time = perf_counter()
res = func(*args, **kwargs)
current, peak = tracemalloc.get_traced_memory()
finish_time = perf_counter()
print("\n")
print(f'Function: {func.__name__}')
print(f'Memory usage:\t\t {current / 10**6:.6f} MB \n'
f'Peak memory usage:\t {peak / 10**6:.6f} MB ')
print(f'Time elapsed is seconds: {finish_time - start_time:.6f}')
print(f'Run on: {datetime.today().strftime("%Y-%m-%d %H:%M:%S")}')
print(f'{"-"*40}')
tracemalloc.stop()
return res
return wrapper_func
class ClassName:
def __init__():
...
@measure_performance
def A():
...
@measure_performance
def B():
...
@measure_performance
def C():
.
.
.
@measure_performance
def main():
classname = ClassName()
a = classname.A()
b = classname.B()
c = classname.C()
...
if __name__ == "__main__":
main()
Код: Выделить всё
Function: A
Memory usage: 191.501034 MB
Peak memory usage: 352.158040 MB
Time elapsed is seconds: 79.373798
Run on: 2024-12-28 00:37:05
Function: B
Memory usage: 1.591783 MB
Peak memory usage: 14.774033 MB
Time elapsed is seconds: 2.095723
Run on: 2024-12-28 00:37:07
Function: C
Memory usage: 2.196528 MB
Peak memory usage: 750.238682 MB
Time elapsed is seconds: 190.336022
Run on: 2024-12-28 00:40:18
Function: main
Memory usage: 0.000000 MB
Peak memory usage: 0.000000 MB
Time elapsed is seconds: 272.908980
Run on: 2024-12-28 00:40:18
Подробнее здесь: https://stackoverflow.com/questions/793 ... racemalloc
Мобильная версия