Skip to content

Commit 4666cb8

Browse files
authored
Merge pull request #626 from Bilal-AYAKDAS/patch-5
Create decorators_bilal_ayakdas.py
2 parents 6a87def + af2efdc commit 4666cb8

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

Week04/decorators_bilal_ayakdas.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from time import time
2+
import tracemalloc
3+
4+
5+
def performance(fn):
6+
if not hasattr(performance, "counter"):
7+
setattr(performance, "counter", 0)
8+
9+
if not hasattr(performance, "total_time"):
10+
setattr(performance, "total_time", 0.0)
11+
12+
if not hasattr(performance, "total_mem"):
13+
setattr(performance, "total_mem", 0)
14+
15+
def calculate_perf(*args, **kwargs):
16+
17+
tracemalloc.start()
18+
begin_time = time()
19+
result = fn(*args, **kwargs)
20+
end_time = time()
21+
current, peak = tracemalloc.get_traced_memory()
22+
23+
setattr(performance, "counter", getattr(performance, "counter") + 1)
24+
setattr(performance, "total_time", getattr(performance, "total_time") + (end_time - begin_time))
25+
setattr(performance, "total_mem", getattr(performance, "total_mem") + peak)
26+
27+
return result
28+
29+
return calculate_perf

0 commit comments

Comments
 (0)