Skip to content

Commit cb9b51a

Browse files
authored
Add performance decorator for function metrics
Implement a performance decorator to measure execution time and memory usage.
1 parent 71f5b39 commit cb9b51a

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

Week04/decorators_mehmet_usta.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
def performance(func):
2+
if not hasattr(performance, "counter"):
3+
performance.counter = 0
4+
performance.total_time = 0.0
5+
performance.total_mem = 0
6+
7+
def wrapper(*args, **kwargs):
8+
start_time = time.perf_counter()
9+
tracemalloc.start()
10+
11+
result = func(*args, **kwargs)
12+
13+
current, peak = tracemalloc.get_traced_memory()
14+
tracemalloc.stop()
15+
end_time = time.perf_counter()
16+
17+
performance.counter += 1
18+
performance.total_time += (end_time - start_time)
19+
performance.total_mem += peak
20+
21+
return result
22+
23+
return wrapper

0 commit comments

Comments
 (0)