From 8cadd511ea67ec5fe1ddf5aaeb4b0ea5e4248652 Mon Sep 17 00:00:00 2001 From: aysegulyildizz <139223718+aysegulyildizz@users.noreply.github.com> Date: Mon, 17 Nov 2025 21:22:41 +0300 Subject: [PATCH] Create decorators_aysegul_yildiz.py --- Week03/decorators_aysegul_yildiz.py | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Week03/decorators_aysegul_yildiz.py diff --git a/Week03/decorators_aysegul_yildiz.py b/Week03/decorators_aysegul_yildiz.py new file mode 100644 index 00000000..f23fae95 --- /dev/null +++ b/Week03/decorators_aysegul_yildiz.py @@ -0,0 +1,40 @@ +import time +import tracemalloc + +def performans(func): + """Bir fonksiyonun zaman ve bellek tüketimini ölçen dekoratör.""" + + def sarmalayıcı(*args, **kwargs): + # --- ÖNCE --- + tracemalloc.start() + baslangic = time.perf_counter() + + # Fonksiyonun gerçek çalışması + sonuc = func(*args, **kwargs) + + # --- SONRA --- + bitis = time.perf_counter() + mevcut_bellek, maksimum_bellek = tracemalloc.get_traced_memory() + tracemalloc.stop() + + gecen_sure = bitis - baslangic + + # Performans istatistiklerini güncelle + performans.sayac += 1 + performans.toplam_sure += gecen_sure + performans.toplam_bellek += maksimum_bellek + + # Ölçüm sonuçlarını kullanıcıya göster + print(f"Fonksiyon adı: {func.__name__}") + print(f"Geçen süre: {gecen_sure:.10f} saniye") + print(f"Bellek kullanımı: {maksimum_bellek} bayt") + print(f"Toplam çağrı sayısı: {performans.sayac}\n") + + return sonuc + + return sarmalayıcı + +# Dekoratörün durum değişkenlerini başlat +performans.sayac = 0 +performans.toplam_sure = 0.0 +performans.toplam_bellek = 0