From 4241d310ff725515a032d8ed55cf76f017dc9a10 Mon Sep 17 00:00:00 2001 From: Sergenops Date: Mon, 9 Nov 2026 19:00:22 +0300 Subject: [PATCH] Add performance decorator for function profiling --- Week04/decorators_sergen_maksutlar.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Week04/decorators_sergen_maksutlar.py diff --git a/Week04/decorators_sergen_maksutlar.py b/Week04/decorators_sergen_maksutlar.py new file mode 100644 index 00000000..3260b014 --- /dev/null +++ b/Week04/decorators_sergen_maksutlar.py @@ -0,0 +1,26 @@ +import time +import tracemalloc + +def performance(f): + if not hasattr(performance, "counter"): + performance.counter = 0 + + if not hasattr(performance, "total_time"): + performance.total_time = 0.0 + + if not hasattr(performance, "total_mem"): + performance.total_mem = 0 + + def _performance(*args, **kwargs): + performance.counter += 1 + + tracemalloc.start() + + x = time.time() + + ret = f(*args, **kwargs) + performance.total_time += time.time() - x + performance.total_mem = tracemalloc.get_traced_memory()[1] + tracemalloc.stop() + return ret + return _performance