Skip to content

Commit af2efdc

Browse files
I used the tracemalloc module.
1 parent a2c6bf4 commit af2efdc

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

Week04/decorators_bilal_ayakdas.py

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,29 @@
1-
from time import time
2-
from sys import getsizeof
1+
from time import time
2+
import tracemalloc
3+
34

45
def performance(fn):
6+
if not hasattr(performance, "counter"):
7+
setattr(performance, "counter", 0)
58

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)
9+
if not hasattr(performance, "total_time"):
10+
setattr(performance, "total_time", 0.0)
1111

12-
if not hasattr(performance,"total_mem"):
13-
setattr(performance,"total_mem",0)
12+
if not hasattr(performance, "total_mem"):
13+
setattr(performance, "total_mem", 0)
1414

15-
1615
def calculate_perf(*args, **kwargs):
16+
17+
tracemalloc.start()
1718
begin_time = time()
18-
result = fn(*args,**kwargs)
19-
memory_usage = getsizeof(result)
19+
result = fn(*args, **kwargs)
2020
end_time = time()
21+
current, peak = tracemalloc.get_traced_memory()
2122

22-
setattr(performance,"counter",getattr(performance,"counter") + 1)
23-
setattr(performance,"total_time",getattr(performance,"total_time") + (end_time - begin_time))
24-
setattr(performance,"total_mem",getattr(performance,"total_mem") + memory_usage)
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)
2526

2627
return result
28+
2729
return calculate_perf

0 commit comments

Comments
 (0)