Skip to content

Commit 9b654ce

Browse files
authored
Performance decorator
Refactor performance decorator to simplify memory tracking and timing.
1 parent 362dd5c commit 9b654ce

1 file changed

Lines changed: 12 additions & 19 deletions

File tree

‎Week04/decorators_ilyas_bugra_filoglu.py‎

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,24 @@
88
def performance(fn):
99
@wraps(fn)
1010
def wrapper(*args, **kwargs):
11-
11+
1212
performance.counter += 1
13-
14-
current_before, _ = tracemalloc.get_traced_memory()
13+
1514
tracemalloc.reset_peak()
16-
1715
start_time = time.perf_counter()
16+
result = fn(*args, **kwargs)
17+
18+
end_time = time.perf_counter()
19+
20+
performance.total_time += end_time - start_time
21+
22+
current_memory, peak_memory = tracemalloc.get_traced_memory()
23+
performance.total_mem += peak_memory
1824

19-
try:
20-
result = fn(*args, **kwargs)
21-
return result
22-
23-
finally:
24-
end_time = time.perf_counter()
25-
26-
performance.total_time += end_time - start_time
27-
28-
current_memory, peak_memory = tracemalloc.get_traced_memory()
29-
30-
performance.total_mem += max(
31-
0, peak_memory - current_before
32-
)
25+
return result
3326

3427
return wrapper
35-
28+
3629

3730
performance.counter = 0
3831
performance.total_time = 0.0

0 commit comments

Comments
 (0)