Skip to content

Commit 8288b11

Browse files
authored
Merge pull request #680 from ozgegoksu/patch-4
Create decorators_ozge_goksu.py
2 parents fa03471 + ba61c8a commit 8288b11

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

Week04/decorators_ozge_goksu.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import time
2+
import tracemalloc
3+
4+
5+
def performance(func):
6+
setattr(performance, 'counter', 0)
7+
setattr(performance, 'total_time', 0.0)
8+
setattr(performance, 'total_mem', 0.0)
9+
10+
def inner(*args, **kwargs):
11+
tracemalloc.start()
12+
start_time = time.perf_counter()
13+
result = func(*args, **kwargs)
14+
end_time = time.perf_counter()
15+
16+
current, peak = tracemalloc.get_traced_memory()
17+
tracemalloc.stop()
18+
19+
setattr(performance, 'counter', getattr(performance, 'counter') + 1)
20+
setattr(performance, 'total_time', getattr(performance, 'total_time') + (end_time - start_time))
21+
setattr(performance, 'total_mem', getattr(performance, 'total_mem') + peak)
22+
23+
return result
24+
25+
inner.get_stats = lambda: {
26+
'counter': getattr(performance, 'counter'),
27+
'total_time': getattr(performance, 'total_time'),
28+
'total_mem': getattr(performance, 'total_mem'),
29+
}
30+
31+
return inner

0 commit comments

Comments
 (0)