tgoop.com/djangolearn_ir/652
Create:
Last Update:
Last Update:
پروفایل کردن چیست؟؟؟
در طی طراحی یک برنامه همیشه این سوال برامون پیش میاد که کد و کوئری ما بهینه هست یا نه ،چقدر منابع مصرف میکنه(حافظه ، cpu ، i/o و ...) ،از لحاظ تایمینگ چطور ، و یا حتی تعداد کوئریهامون و ...
به این موضوع شکل گرفته در ذهن ما در دنیای مهندسی نرم افزار پروفایلینگ میگن
پروفایلینگ در توسعه نرم افزار به فرآیند تجزیه و تحلیل رفتاری زمان اجرای یک سیستم یا برنامه میگیم ،تا ازین طریق بتوان نقاط ضعف و مورد دار سیستم رو پیدا کنیم و در جهت بهبود اون اقدام به بازنویسی موارد مدنظرمون کنیم
انواع مختلف پروفایلینگ به دسته بندی های زیر تقسیم میشه
۱-پروفایلینگ زمان:نکته قابل توجه:
مقدار زمان صرف شده بخشهای مختلف کد رو اندازه گیری میکنیم
۲-پروفایلینگ حافظه:
تحلیل نحوه استفاده از حافظه توسط یک برنامه (مدیریت ناکارآمد، مصرف غیر ضروری و ...)
۳-پروفایلینگ cpu:
نحوه استفاده از پردازنده، شناسایی عملیاتهای محدود به cpu و نقاطی که بهینه سازی شود
۴-پروفایلینگ i/o:
دسترسی به فایلها یا کوئریهای دیتابیس،شناسایی نقاط محدود کننده و بهبود آن
۵-پروفایلینگ پوششی کد:
کدام بخش کد در طول یک جریان ،اجرا شدند کمک به تست و شناسایی کدام بخش کد اجرا نشده است
۶-پروفایلینگ فراخوانی تابع:
ردیابی فراوانی و مدت زمان فراخوانی تابع، درک سلسله مراتب فراخوانی و شناسایی توابع با تاثیر بالا
پروفایلینگ نباید در دسترس غیر توسعه دهندگان قرار گیرد ،این رویکرد و ابزارهای آن تنها مورد استفاده تیم توسعه جهت شناسایی ضعف سیستم و کدها در جهت بهبود آن می باشد نه بیشتردر فریمورک جنگو هم دو پکیج محبوب وجود دارد django-debug-toolbar و django-silk می باشد
خب بیاید django-silk رو پیکربندی و نصب کنیم
نصب
pip install django-silkتنظیمات در settings.py
INSTALLED_APPS = [در urls اصلی پروژه
...
'silk'
]
MIDDLEWARE = [
...
'silk.middleware.SilkyMiddleware',
]
from django.contrib import adminدر نهایت
from django.urls import path, include
from django.conf import settings
urlpatterns = [
path('admin/', admin.site.urls),
]
if settings.DEBUG:
urlpatterns += [path('silk/', include('silk.urls', namespace='silk'))]
python manage.py makemigrationsحالا کافیه به مرورگر خود برید یکم داخل اپلیکیشن بگردید ویوهای مختلف رو ببینید و قسمتهای مختلف برنامه رو بالا پایین کنید و در نهایت به آدرس
python manage.py migrate
python manage.py collectstatic
python manage.py runserver
http://localhost:8000/silkمیتوانید خروجی پروفایلینگ کارهای مختلف و رفتارها رو ببینید
این پکیج امکانات بیشتری به شما میدهد که با خوندن صفحه گیتهاب اون میتونید بیشتر باهاش آشنا بشید
@code_crafters
BY جنگولرن
Share with your friend now:
tgoop.com/djangolearn_ir/652