tgoop.com/pyHints/148
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