Skip to content

Commit 8d296b8

Browse files
authored
Merge pull request #1039 from mimo-o/patch-5
Add performance decorator to measure time and memory
2 parents 2f57771 + 878370d commit 8d296b8

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

Week04/decorators_basak_kocan.py

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

0 commit comments

Comments
 (0)