From 836b04327d9b7c3c2d25d4c297e9bfc1dfeada64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bilal=20Ayakda=C5=9F?= <72439364+Bilal-AYAKDAS@users.noreply.github.com> Date: Thu, 24 Oct 2024 21:33:36 +0300 Subject: [PATCH 1/3] Create decorators_bilal_ayakdas.py --- Week04/decorators_bilal_ayakdas.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Week04/decorators_bilal_ayakdas.py diff --git a/Week04/decorators_bilal_ayakdas.py b/Week04/decorators_bilal_ayakdas.py new file mode 100644 index 00000000..764e5248 --- /dev/null +++ b/Week04/decorators_bilal_ayakdas.py @@ -0,0 +1,26 @@ +from time import time +from sys import getsizeof + +def performance(fn): + + if not hasattr(performance,"counter"): + setattr(performance,"counter",0) + + if not hasattr(performance,"total_time"): + setattr(performance,"total_time",0.0) + + if not hasattr(performance,"total_mem"): + setattr(performance,"total_mem",0) + + + def calculate_perf(*args, **kwargs): + begin_time = time() + memory_usage = getsizeof(fn(*args,**kwargs)) + end_time = time() + + setattr(performance,"counter",getattr(performance,"counter") + 1) + setattr(performance,"total_time",getattr(performance,"total_time") + (end_time - begin_time)) + setattr(performance,"total_mem",getattr(performance,"total_mem") + memory_usage) + + return fn(*args,**kwargs) + return calculate_perf From a2c6bf4a77265a4e6fc75aadc6a8a2517f6c8a1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bilal=20Ayakda=C5=9F?= <72439364+Bilal-AYAKDAS@users.noreply.github.com> Date: Thu, 31 Oct 2024 19:22:43 +0300 Subject: [PATCH 2/3] Update decorators_bilal_ayakdas.py --- Week04/decorators_bilal_ayakdas.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Week04/decorators_bilal_ayakdas.py b/Week04/decorators_bilal_ayakdas.py index 764e5248..24eddab2 100644 --- a/Week04/decorators_bilal_ayakdas.py +++ b/Week04/decorators_bilal_ayakdas.py @@ -15,12 +15,13 @@ def performance(fn): def calculate_perf(*args, **kwargs): begin_time = time() - memory_usage = getsizeof(fn(*args,**kwargs)) + result = fn(*args,**kwargs) + memory_usage = getsizeof(result) end_time = time() setattr(performance,"counter",getattr(performance,"counter") + 1) setattr(performance,"total_time",getattr(performance,"total_time") + (end_time - begin_time)) setattr(performance,"total_mem",getattr(performance,"total_mem") + memory_usage) - return fn(*args,**kwargs) + return result return calculate_perf From af2efdc69aebc70c5ef9c44c64d20ba7863e7a5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bilal=20Ayakda=C5=9F?= <72439364+Bilal-AYAKDAS@users.noreply.github.com> Date: Sat, 21 Dec 2024 21:23:46 +0300 Subject: [PATCH 3/3] I used the tracemalloc module. --- Week04/decorators_bilal_ayakdas.py | 32 ++++++++++++++++-------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/Week04/decorators_bilal_ayakdas.py b/Week04/decorators_bilal_ayakdas.py index 24eddab2..9afb84e0 100644 --- a/Week04/decorators_bilal_ayakdas.py +++ b/Week04/decorators_bilal_ayakdas.py @@ -1,27 +1,29 @@ -from time import time -from sys import getsizeof +from time import time +import tracemalloc + def performance(fn): + if not hasattr(performance, "counter"): + setattr(performance, "counter", 0) - if not hasattr(performance,"counter"): - setattr(performance,"counter",0) - - if not hasattr(performance,"total_time"): - setattr(performance,"total_time",0.0) + if not hasattr(performance, "total_time"): + setattr(performance, "total_time", 0.0) - if not hasattr(performance,"total_mem"): - setattr(performance,"total_mem",0) + if not hasattr(performance, "total_mem"): + setattr(performance, "total_mem", 0) - def calculate_perf(*args, **kwargs): + + tracemalloc.start() begin_time = time() - result = fn(*args,**kwargs) - memory_usage = getsizeof(result) + result = fn(*args, **kwargs) end_time = time() + current, peak = tracemalloc.get_traced_memory() - setattr(performance,"counter",getattr(performance,"counter") + 1) - setattr(performance,"total_time",getattr(performance,"total_time") + (end_time - begin_time)) - setattr(performance,"total_mem",getattr(performance,"total_mem") + memory_usage) + setattr(performance, "counter", getattr(performance, "counter") + 1) + setattr(performance, "total_time", getattr(performance, "total_time") + (end_time - begin_time)) + setattr(performance, "total_mem", getattr(performance, "total_mem") + peak) return result + return calculate_perf