Skip to content

Commit ae79084

Browse files
authored
Create decorators_eren_malkoc.py
1 parent fc02709 commit ae79084

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

Week04/decorators_eren_malkoc.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import time
2+
import tracemalloc
3+
4+
5+
def performance_decorator(fn):
6+
performance_decorator.counter = 0
7+
performance_decorator.total_time = 0.0
8+
performance_decorator.total_mem = 0
9+
10+
def wrapper(*args, **kwargs):
11+
12+
start_time = time.time()
13+
tracemalloc.start()
14+
15+
16+
result = fn(*args, **kwargs)
17+
18+
19+
end_time = time.time() - start_time
20+
current_mem, peak_mem = tracemalloc.get_traced_memory()
21+
22+
tracemalloc.stop()
23+
24+
25+
performance_decorator.counter += 1
26+
performance_decorator.total_time += end_time
27+
performance_decorator.total_mem += peak_mem
28+
29+
30+
print(f"Execution {performance_decorator.counter}:")
31+
print(f"Time: {end_time:.6f} seconds")
32+
print(f"Peak Memory Usage: {peak_mem / 1024:.2f} KB\n")
33+
34+
return result
35+
36+
return wrapper

0 commit comments

Comments
 (0)