PYHINTS Telegram 148
Python Hints
قبل از اینکه خروجی cProfile رو تفسیر کنم می‌خوام مهمترین نکته توی زندگیتون موقع استفاده از ابزارهای profiling رو بگم. همیشه و تحت همه شرایط؛ خروجی Profiling رو ذخیره کنید اونم ۲ بار : ۱- قبل از اینکه کدی رو تغییر بدید (همیشه هم به اسمی ذخیره کنید که یادتون…
توی دستور بالا :
-m:
برای استفاده از یک ماژول خاص استفاده می‌شه
-s:
ترتیب نمایش هست که گفتیم بر اساس cumulative time باشه همیشه هم همین رو استفاده خواهید کرد
-o:
برای اینکه خروجی رو توی یک فایل بریزه و توی ترمینال نمایش نده (اول در تاریخ ثبت می‌کنیم بعد ی بار هم بدون این option برای راحتی خودمون اجرا می‌کنیم)

تفسیر خروجیش هم خیلی ساده‌تر از اون چیزی هست که فکر می‌کنید فقط چندتا نکته داره :
ncalls:
تعداد فراخوانی اون خط از کد (ستون آخر کمی جلوتر توضیح میدم دقیق)
وقتی دوتا عدد هست مثل خط اول خروجی توی عکس قبلی
3/1:
عدد کوچیکتر تعداد فراخوانی غیر بازگشتی یا primitive هست و عدد بزرگتر تعداد کل فراخوانی به هر شکلی که بوده (بازگشتی و غیر بازگشتی و ...) یعنی بصورت کلی اون builtin method توی مثال قبل ۳ بار فراخوانی شده.

tottime:
مجموع زمان مورد نیاز جهت اجرای اون تایع؛ به غیر از زمان اجرای توابعی که داخل این تابع فراخوانی شده‌اند.

percall:
زمان اجرای مورد نیاز برای هربار اجرای اون خط یا اون تابع معمولا حدودی برابر هست با :
tottime / ncalls

cumtime:
مهمترین ستون همینه و اون مرتب سازی که توی دستور انجام دادیم (منظورم s cumulative- هست) بر اساس همین ستون بود.
مجموع زمان مورد نیاز از لحظه فراخونی اون خط یا تابع تا خروج از اون خط یا تابع + زمان مورد نیاز برای اجرای توایعی که داخل این تابع یا خط فراخوانی شدند + زمان اجرا بصورت recursive , ... خلاصه همه چیز اینجاس و از همه ستون‌ها هم دقیق‌تر هست

filename:lineno(function)
اینم که بسیار واضح هست از سمت چپ به راست :
اسم اسکریپت : شماره خطی که اون کد اجرا شده (اسم تابع)
اسم تابع برای شرایطی مهم هست که داخل تابع اصلی توابع دیگری هم فراخوانی بشه

توی خروجی بالا مواردی مثل builtin.exec (از توابع مورد علاقه من هست اصن ی وضعی) و برخی موارد دیگر برای
import random
هست
@PyHints

همینجا بگم که تصویر قبلی خروجی کامل cProfile نیست و بنده این خروجی رو بریدم تا خواناتر باشه
👍411532👎2



tgoop.com/pyHints/148
Create:
Last Update:

توی دستور بالا :
-m:
برای استفاده از یک ماژول خاص استفاده می‌شه
-s:
ترتیب نمایش هست که گفتیم بر اساس cumulative time باشه همیشه هم همین رو استفاده خواهید کرد
-o:
برای اینکه خروجی رو توی یک فایل بریزه و توی ترمینال نمایش نده (اول در تاریخ ثبت می‌کنیم بعد ی بار هم بدون این option برای راحتی خودمون اجرا می‌کنیم)

تفسیر خروجیش هم خیلی ساده‌تر از اون چیزی هست که فکر می‌کنید فقط چندتا نکته داره :
ncalls:
تعداد فراخوانی اون خط از کد (ستون آخر کمی جلوتر توضیح میدم دقیق)
وقتی دوتا عدد هست مثل خط اول خروجی توی عکس قبلی
3/1:
عدد کوچیکتر تعداد فراخوانی غیر بازگشتی یا primitive هست و عدد بزرگتر تعداد کل فراخوانی به هر شکلی که بوده (بازگشتی و غیر بازگشتی و ...) یعنی بصورت کلی اون builtin method توی مثال قبل ۳ بار فراخوانی شده.

tottime:
مجموع زمان مورد نیاز جهت اجرای اون تایع؛ به غیر از زمان اجرای توابعی که داخل این تابع فراخوانی شده‌اند.

percall:
زمان اجرای مورد نیاز برای هربار اجرای اون خط یا اون تابع معمولا حدودی برابر هست با :
tottime / ncalls

cumtime:
مهمترین ستون همینه و اون مرتب سازی که توی دستور انجام دادیم (منظورم s cumulative- هست) بر اساس همین ستون بود.
مجموع زمان مورد نیاز از لحظه فراخونی اون خط یا تابع تا خروج از اون خط یا تابع + زمان مورد نیاز برای اجرای توایعی که داخل این تابع یا خط فراخوانی شدند + زمان اجرا بصورت recursive , ... خلاصه همه چیز اینجاس و از همه ستون‌ها هم دقیق‌تر هست

filename:lineno(function)
اینم که بسیار واضح هست از سمت چپ به راست :
اسم اسکریپت : شماره خطی که اون کد اجرا شده (اسم تابع)
اسم تابع برای شرایطی مهم هست که داخل تابع اصلی توابع دیگری هم فراخوانی بشه

توی خروجی بالا مواردی مثل builtin.exec (از توابع مورد علاقه من هست اصن ی وضعی) و برخی موارد دیگر برای
import random
هست
@PyHints

همینجا بگم که تصویر قبلی خروجی کامل cProfile نیست و بنده این خروجی رو بریدم تا خواناتر باشه

BY Python Hints




Share with your friend now:
tgoop.com/pyHints/148

View MORE
Open in Telegram


Telegram News

Date: |

A Hong Kong protester with a petrol bomb. File photo: Dylan Hollingsworth/HKFP. It’s yet another bloodbath on Satoshi Street. As of press time, Bitcoin (BTC) and the broader cryptocurrency market have corrected another 10 percent amid a massive sell-off. Ethereum (EHT) is down a staggering 15 percent moving close to $1,000, down more than 42 percent on the weekly chart. Telegram Channels requirements & features How to Create a Private or Public Channel on Telegram? Select “New Channel”
from us


Telegram Python Hints
FROM American