🔆 خیلی وقتا توی پروژههای جنگو یا حتی اسکریپتهای معمولی، نیاز داری بدونی یه تابع یا یه تیکه کد چقدر زمان میبره تا اجرا بشه تا بتونی بهینهش کنی. به جای استفاده از دستی گرفتن زمان با کتابخونه time، میتونی از یک دکوریتور (Decorator) ساده استفاده کنی که هر جا خواستی بذاریش و عملکرد کد رو بسنجی. این مدل کدنویسی خیلی تمیزتره و باعث میشه بدون تغییر دادن اصلِ منطقِ تابع، بتونی مانیتورینگ دقیق روی پرفورمنس برنامهت داشته باشی و نقاط کند رو سریع پیدا کنی.
import time
import functools
def timer(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
start = time.perf_counter()
result = func(*args, **kwargs)
print(f"زمان اجرا: {time.perf_counter() - start:.4f} ثانیه")
return result
return wrapper
@timer
def heavy_task():
time.sleep(1)
heavy_task()
🐍
@python_rd