Skip to content

Commit 16661f0

Browse files
authored
Create decorators_elif_gulseren.py
1 parent 25bda4d commit 16661f0

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

‎Week04/decorators_elif_gulseren.py‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import time
2+
import tracemalloc
3+
from functools import wraps
4+
5+
def performance(func):
6+
@wraps(func)
7+
def wrapper(*args, **kwargs):
8+
performance.counter += 1
9+
10+
tracemalloc.start()
11+
start_mem, _ = tracemalloc.get_traced_memory()
12+
13+
start_time = time.perf_counter()
14+
15+
result = func(*args, **kwargs)
16+
17+
end_time = time.perf_counter()
18+
19+
_, peak_mem = tracemalloc.get_traced_memory()
20+
tracemalloc.stop()
21+
22+
time_taken = end_time - start_time
23+
mem_used = peak_mem - start_mem
24+
25+
performance.total_time += time_taken
26+
performance.total_mem += mem_used
27+
28+
return result
29+
30+
return wrapper
31+
32+
performance.counter = 0
33+
performance.total_time = 0.0
34+
performance.total_mem = 0

0 commit comments

Comments
 (0)