Python Hints
8.62K subscribers
172 photos
11 videos
9 files
141 links
Python tips and tricks
The Good, Bad and the Ugly

توی این کانال فقط قرار هست در مورد core python صحبت کنیم.

این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار)

Admin: @Abbasi_ai
Download Telegram
Python Hints
lineprofiler, memory profiler, scalene (all in one gpu include) بماند برای روزهای بعدی (روی هرکدوم از موارد که دوست داشتید reaction بزنید ممنون)
من این موارد رو فراموش کردم نگفتم ☝️☝️☝️

یکی از اعضای جدید، الان اعلام کردند
تا آخر این هفته این موارد رو هم پوشش خواهم داد

ولی ۲۰۰۰ نفر فقط یک نفر اهمیت
Profiling
رو درک کرد ؟

اوضاع بد شد که دوباره 🙄
🐳16👍3💔21👎1
#موقت

آقا این پست‌های لینکدین رو دیدید ؟
طرف زد من پشتکار بسیار و مدرک و تخصص و ... دارم ولی شغل پیدا نمی‌کنم یا هرجا میفرستم ریجکت می‌شه

من این ماه ۲۰ تا پایتونی دیدم که پروفایل و ... توی لینکدین خوب بود، گفتم که رزومه بفرستند : آمارش این شد

. ۱۸‌ مورد اصلا رزومه‌ای ارسال نکردند ( همینجا جا زدی، پشتکار کجا بود ؟😂)

. دو مورد ارسال کردند، مورد اول بعد از بررسی رزومه متوجه شدیم دروغ گفته و حتی پایتون رو هم بلد نبود

. مورد دوم هم، ۱ سال سابقه کاری داشت و فقط پایتون رو متوسط بلد بود با این حال گفتم که تیم باهاش قرارداد ببنده (یک پروژه کوتاه مدت داشتیم، و گفتم اگر کارش خوب باشه باهاش قرارداد بلند مدت ببندیم)
دیدم خبری ازش نشد، پیگیر شدم متوجه شدم گفته من با زیر ماهیانه ۵۰ میلیون تومن کار نمی‌کنم
چون تیم ما خارج از ایران هست این حرف رو زده یا ... نمی‌دونم.

خلاصه خواستم بگم، ایرانی می‌تونه حتی لینکدین رو هم خراب کنه

حالا فرض کنید یک آدم با سواد بنا به دلایلی استخدام نمی‌شه (توانایی کار حضوری نداره، یا با ساعت کاری ایران بنا به شرایط نمی‌تونه کار کنه و ... ) من چطور می‌تونم اعتماد کنم و چطور می‌تونم این آدم رو پیدا کنم ؟


خداییش، توی شبکه آدم‌های اطرافتان به مواردی که گفتم (اون ۲۰ نفر) بها ندید، اگر واقعاً خواستن کار یاد بگیرند و حرفای معقول زدند مشکلی نیست ولی

و خواهشاً باعث بی‌اعتمادی تو جامعه برنامه‌نویسی نشید.
👍70😁4
قبل از سوال :
پیام‌های پین شده کانال رو بخونید،
انتهای پیام دوم
۴ تا از بهترین کتاب‌هایی که هر پایتون دولوپری بعد از ۶ماه یا ۱ سال تمرین پایتون باید بخونند رو نوشتم.

بعنوان مثال، من نیرویی رو توی این روزها رد کردم که دانش خوبی داشت
ولی فرق
copy, deepcopy
رو نمی‌دونست و توی کدهای خودش همواره از
copy
استفاده کرده بود، که بعد از اینکه براش توضیح دادم متوجه شد زحمات ۱ سال تحقیقش هم اشتباه هست و به همین دلیل خروجی‌ کارش بسیار دقت بالایی میده.

این مورد رو چون روی کدهای خودشون دیدم پرسیدم و به این موضوع ختم شد.

۱۰۰۰ بار دیگه هم لازم باشه میگم، اگر توی سن پایین هستید (زیر ۲۴ سال) یا اگر هنوز هدف دانشگاه هست نه بازار کار (تا ۲۶) اول پایتون رو فوق‌العاده خوب درک کنید بعد برید سراغ تخصصی شدن روی فریمورک یا ... خاص.

اگر سن بیشتری دارید یا وارد بازار کار شدید و این موارد رو نخوندید، زودتر کنار شغلتون برگردید و حداقل اون ۴ کتاب رو بخونید،
روزی که دستمزد بیشتری گرفتید قطعاً ازین تصمیم خوشحال خواهید شد.
👍4241
من یک فرمول خاصی برای کسانی که میگن کار پیدا نمی‌شه و ... دارم

همیشه به دوستانم گفتم و همیشه هم بعد از مدت کوتاهی گفتند که جواب داده و حتی دستمزدی بالاتر از آنچه انتظار داشتند بهشون پیشنهاد شده

رزومه نویسی هم همینطور هست، یک سری تکنیک داره (البته من خیلی وقت هست رزومه ننوشتم و نیازی بهش نداشتم شخصاً، شاید ۴ سال)

ولی اگر فکر می‌کنید نیاز دارید
می‌تونم جمعه این هفته قبل یا بعد از جلسات
Fluent Python
(ظرفیت تکمیل هست، دوستان تا دوره بعدی صبر کنند اینم بگم کار پولی نیست، ارائه توسط خود بچه‌ها هست و من فقط توی جلسه کمک به درک بهتر مطالب می‌کنم، همین)

یک لینک میت برای این موضوع بذارم و چندتا رزومه رو باهم بررسی کنیم (البته فقط و فقط پایتون؛ و فیلدهای مربوط به پایتون)

Reaction
ها اگر بیشتر لایک باشه، حتماً اینکار رو می‌کنم.
اگر فکر می‌کنید نیازی نیست، لطفاً dislike بذارید

ساعت جلسات fluent Python هر جمعه بین ۳ تا ۵ هست

احتمالا جلسه رزومه اگر شما بخواهید، بین ۱ تا ۳ خواهد بود، اگر کسی بخواد می‌تونه رزومه بفرسته تا توی جلسه بطور عمومی بررسی بشه، اگر نگران حرف مردم هستید (از من به شما نصیحت حرف هیچکس مهم نیست، شما رو به پیشرفت هستید) می‌تونید بخش اسم و اطلاعات شخصی خودتون رو با کلمه example پر کنید.
👍228👎93
ReactPy

رو سرچ کنید 👌
(برو‌ بچه‌های بکند بخصوص)

دیگه چیزی نگم راجبش
🔥20👍87👎1
توی اون مسئله معرفی توزیع‌ لینوکس جایگزین
یکی از دوستان
Senior DevOps
بهم این مورد رو معرفی کرد :
NixOS

از اونجایی که کاملا خاص بود و تا حالا راجبش نشنیده بودم؛ یک سری جستجو زدم روی این موضوع.

و خدا می‌دونه آرزو میکردم زمانی که شغلم سرور بود این رو پیدا کرده بودم و یاد میگرفتم (برای من کاربردی نداره اما اگر شما devops یا linux server کار می‌کنید حتما بهش نگاهی داشته باشید)

دستمزدهای کاریش رو هم دیدم (پرداخت‌هاش خیلی خیلی بیشتر از باقی تخصص‌های این زمینه هست)
👍155👎21🔥1🍓1
Python Hints
من یک فرمول خاصی برای کسانی که میگن کار پیدا نمی‌شه و ... دارم همیشه به دوستانم گفتم و همیشه هم بعد از مدت کوتاهی گفتند که جواب داده و حتی دستمزدی بالاتر از آنچه انتظار داشتند بهشون پیشنهاد شده رزومه نویسی هم همینطور هست، یک سری تکنیک داره (البته من خیلی…
#موقت

فردا بین ساعت ۱۳ تا ۱۵ (شروع قطعاً نزدیک به ۱۳ خواهد بود با ۵-۱۰ دقیقه اختلاف) لینک این جلسه رو خواهم گذاشت
با توجه به تعداد
Reaction

مثبت، فکر می‌کنم google meet ظرفیت کافی رو خواهد داشت.
👍108🌚3🍾3👎21
rm -rf
روی پارتیشن اشتباه زدم

۷۰۰ گیگ دیتا و کد و ... به فاک رفت



بعد از آپگرید، اوبونتو اطلاعات
UUID
۲ تا از پارتیشن‌ها رو تغییر داده بود، فکر کردم
mount
نشده چون چندبار که تست کردم نشده بود و دستور رو اجرا کردم تا دستی
mount
کنم و بکاپ بگیرم که همه‌ی داده‌ها پاک شد.

با این خبر احتمالا چند هفته‌ای در دسترس نیستم.


پ.ن :
دقیقاً ۲ روز پیش یوتیوب یک ویدئو بهم recommend کرد که طرف یک پارتیشن پاک شده رو بر می‌گردونه (برای ۳ هفته قبل هم بود)

اون لحظه گفتم آخه کی بدون چند بار تست
rm -rf
اجرا می‌کنه و ذخیره نکردم.
حالا خودم دقیقاً همون رو نیاز دارم، و پیدا نمی‌شه
😢60💔19😁7👀4😱3🌚2👍1🎉1🕊1🗿1
Python Hints
rm -rf روی پارتیشن اشتباه زدم ۷۰۰ گیگ دیتا و کد و ... به فاک رفت بعد از آپگرید، اوبونتو اطلاعات UUID ۲ تا از پارتیشن‌ها رو تغییر داده بود، فکر کردم mount نشده چون چندبار که تست کردم نشده بود و دستور رو اجرا کردم تا دستی mount کنم و بکاپ بگیرم که…
برای من بدترین بخش این داستان نوشتن و ارسال این متن به شرکت‌ها بود، برای منی که تا حالا مرخصی ساعتی هم نگرفتم تسک عقب افتادن واقعاً درد هست :

I am sorry to inform you that I will be unavailable for any work-related tasks for at least the next three days. I have lost more than 700GB of code and data due to a technical issue and I need some time to recover it. I appreciate your understanding and patience in this difficult situation. I will only be able to answer calls and provide help if needed, but I cannot do any coding or other assignments until I restore my environment and files. Thank you for your cooperation and support.

امیدوارم قبل از روز ۱ شنبه بتونم حداقل کدها رو برگردونم (نسخه اصلی رو روی گیت‌هاب دارم اما خیلی نسخه‌‌ها ایده‌های خودم بودم و شخصی نگه می‌داشتم که مجبور نشم چندباره تست بگیرم) باقی دیتاها رو هیچ نیازی ندارم.
😢468👍3💔2
تا ۳ ماه که فکر نمی‌کنم جز کد زدن و رسوندن خودم به جایی که دیشب بودم کاری داشته باشم 😂🤣

ولی اگر وقت کتاب هوش خوندن داشتم قطعاً این کتاب رو شروع میکردم به بررسی :

Understand deep learning (book with codes)

ولی کد از دست دادن، مرگ که نیست
نهایتاً مجبور میشم دوباره بشینم فکر کنم و بزنم (علمش رو که از دست ندادم)
خلاصه خیلی هم ناراحت نیستم واقعیتش.
👍374🗿2
داشتم با یکی از بچه‌ها چت میکردم
یادم انداخت (حدوداً) سری قبلی که این اتفاق برام افتاده بود
البته اون موقع
Bad sector
روی HDD بود تازه داشتم ‌پایتون یاد می‌گرفتم و همه کدهام رو روی پایتون بازنویسی کردم

الان دارم Rust یاد میگیرم.
😁22👏1👻1
این گذارش برای بچه‌های توسعه دهنده هوش مصنوعی و انتخاب توزیع جایگزین برای ubuntu :

Fedora 38
رو نصب کردم، مشکلات ubuntu رو اصلا نداشت، درایور تمام سخت‌افزارها رو به درستی نصب کرده بود (خیلی جای تعجب داشت، چون روی اوبونتو و ... همیشه شخصا اینکار رو میکردم، اونم نسخه کاستومایز شده)
و البته dual screen رو خیلی فوق‌العاده پشتیبانی میکرد

اما مشکلاتش برای کار ما:
متأسفانه تقریباً هر ورژن اصلی cuda فقط برای یک نسخه و ورژن از fedora اومده

11.8 --> fedora 35
12.0 --> fedora 36
12.2 --> fedora 37

و هیچکدوم بطور رسمی fedora 38 رو هم پشتیبانی نمی‌کنه که خب خوب نیست. (مشکل از LTS نبودن فدورا هست)

اما واقعاً فوق‌العاده بود و بیش از حد سریع.

Rocky Linux 9
با نسخه ۸ بسیار کار کرده بودم و عالی بود بخصوص روی سرور ورژن ۹ قطعاً بهتر خواهد بود (امیدوارم)
و چون بر اساس
RedHat
ساخته می‌شه خیالم کاملاً راحته که مشکلات آپدیت و ...
Ubuntu
رو نخواهد داشت (این پروژه جایگزین CentOS هست و توسط مدیران ارشد همون پروژه اداره میشه، در پاسخ به IBM و عدم حمایت از CentOS بعد از خرید Redhat)

در نهایت اگر با این مورد هم زه مشکل بخورم
Pop_OS!

خیلی سال پیش معرفی کردم و روش بودم، (چون طرفدار system76 بودم)
و حالا که پیشرفت زیادی داشته بهتر از ubuntu هم هست (بالاخره یک سرس چشم دیگه روی کدهای ubuntu و تست‌هاش هست دیگه) نهایت میرم سراغ این گزینه اگر هیچ چیز جواب نده
👍26🕊2
Python Hints
این گذارش برای بچه‌های توسعه دهنده هوش مصنوعی و انتخاب توزیع جایگزین برای ubuntu : Fedora 38 رو نصب کردم، مشکلات ubuntu رو اصلا نداشت، درایور تمام سخت‌افزارها رو به درستی نصب کرده بود (خیلی جای تعجب داشت، چون روی اوبونتو و ... همیشه شخصا اینکار رو میکردم،…
#موقت
در طول این پروسه چون فکر می‌کنم خیلی طولانی تر از آنچه که باید میشه (بخاطر چیزایی که در مورد
Nvidia - linux
و درگیریشون می‌دونیم)

ادامه بحث رو توی
@DevChaiChat
میذارم، الان توی این وضعیتم که خب
Ubuntu *.04
که دیگه stable نیست (سرچ کنید دلایلش میاد)

Fedora
هم که LTS نداره و اتفاقات اخیر
RedHat
حتی تصمیم رو خطری می‌کنه

RockyLinux
به تنهایی فوق‌العاده‌اس اما
Nvidia 3090
داره اذیت می‌کنه و نمی‌ذاره محیط‌های گرافیکی حتی موقت نمایش داده بشه (blank screen یا no reponse دارم)

یکی از بچه‌ها پیشنهاد داد
Rocky
رو نصب کنم بعد توی tty2 بیام nvidia رو نصب کنم و ...

نمی‌دونم چطوری میشه اوضاع باید تست کنم ولی احتمال زیاد میرم سمت Xfce و بعد باید دستی بشینم کانفیگ کنم.

پافشاریم روی Rocky برای این هست که ۱۰ سال پشتیبانی داره
و اگر همین بار اول درست کانفیگ بشه، دیگه نباید دردسر خاصی داشته باشم.
👍132
Opera browser

رو نصب کنید، علاوه بر ویژگی‌های خوبی که داره ( Adblock - Islands , ... )
که یک مرورگر فوق‌العاده سریع هست و ...
مثل
Microsoft Edge

یک هوش مصنوعی برای پاسخ به سوالات هم داره من چندین سوال رو ازش پرسیدم بسیار بهتر از
Edge
جواب داد، بهش میگم که بهم توصیه شده فلان ابزار روی توی
/usr/local
نصب کنم ولی می‌دونم جاش باید توی
/opt

باشه، برام تحلیل کرده چرا opt منطقی‌تر هست، البته خودش هم از اول opt رو پیشنهاد کرده بود.
👍24👎1👾1
این آخرین پست درباره موضوع لینوکس و ... هست (با توجه به اتفاقات اخیر)
ببخشید که کمی از بحث دور شدم؛ اما هدف داشتم
خیلی از بچه‌هایی که روی AI کار می‌کنند و خیلی دیگه از توسعه دهنده‌های پایتون که وقت کاستومایز کردن و ... ندارند به جز Ubuntu متاسفانه گزینه دیگری ندارند برای همین وقتی دیدم Ubuntu دیگه رو به افول گذاشته (تمرکزش روی سرور هست و داره تلاش می‌کنه مثل RedHat بتونه از سرور پول در بیاره) ترجیح دادم کمی از موضوع اصلی کانال دور بشم و روی جایگزین‌های Ubuntu صحبت کنم.

توزیع‌های بسیار زیادی رو دوستان معرفی کردند و خودم میشناختم اما موضوع پشتیبانی از فریمورک‌ها و پکیج‌های مورد نیاز AI هم بود و البته سادگی راه‌اندازی توزیع هدف و میزان استیبل بودنش

همه این‌ها من رو رسوند به Rocky Linux :
1- روی کاغذ هیچ توزیعی به اندازه این مورد استیبل نیست (که رایگان هم باشه) از روی RedHat Enterprise ساخته می‌شه و افراد مهمی پشتش هستند ( کسانی که CentOS رو این همه سال توسعه دادند )؛ پشتیبانی ۱۰ ساله هم داره ورژن‌های اصلی.

۲- راه‌اندازیش می‌تونه به اندازه سواد و توانایی شما؛ ساده یا سخت باشه
مثلا من برای راه‌اندازی چون کارت گرافیک Onboard ندارم نمی‌تونستم از نسخه workstation برای نصب استفاده کنم و رفتم سراغ نسخه minimal ترتیب نصب هم برای اینکه به مشکل نخورید :

Rocky linux minimal --> install

tty : --> sudo dnf update

reboot

sudo dnf install group Workstation

nvidia-driver installation (follow cuda installation documentation instructions)

Before Reboot, Disable nouveau

reboot

Install cuda and ...

۲ تا نکته من چون تنبل بودم install group رو استفاده کرد بعد مواردی که بدردم نمی‌خورد رو حذف یا ادیت کردم
cuda, cudnn,
رو از روی داکیومنت اصلی خودشون که سایت nvidia منتشر کرده نصب کردم و بعد از نصب (چون ورژن قدیمی‌ تر رو میخواستم نه آخرین نسخه)
repo
اش رو حذف کردم.

3- پکیج‌هایی که وجود نداره رو توی epel-release, flatpak, rpmfusion قطعا پیدا می‌کنید که خیلی راحت نصب میشه

چندتا توصیه اگر این ویژگی‌ها رو دوست دارید و دستی هم بر آتش دارید یا علاقه به کاستومایز کردن : Xfce رو بجای Gnome استفاده کنید؛ چندتا باگ وجود داره که احتمالا بخاطر تجهیزات من هست (البته بسیار بسیار کمتر از میزان تغییراتی هست که روی Ubuntu باید میدادم تا سخت‌افزارهام کار کنه) و اینکه آزار دهنده نیست.

در نهایت Python3.10 وجود نداره که خب باید کامپایل کنید و نصب کنید؛ اصلا هم سخت نیست دیگه (دیفالت 3.9 نصب هست و روی رپو هم 3.11 وجود داره) من اینطوری نصب کردم :

dnf update

dnf install gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget make sqlite-devel xz-devel

wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz

tar xzf Python-3.10.13.tgz

cd Python-3.10.13

./configure --enable-optimizations

برای دستور بعدی من ۱۴ تا ترد رو در اختیار گذاشتم که سریعتر کامپایل بشه (این عدد رو کمتر می‌تونید بکنید شما)

make -j 14
nproc
make altinstall

بعد هم تست کنید که درست نصب شده باشه.
تا اینجا هنوز هیچکدوم از مشکلات ubuntu رو ندارم و با نصب هیچکدوم از پکیج‌ها هم به مشکل نخوردم (حتی مشکلات و ارورهای بعد از نصب که توی ubuntu وجود داشت رو هم ندارم)
امیدوارم تا چندسال آبنده هم همینطوری بمونه.

جایگزین مناسب برای Ubuntu توی کارهای ما فعلا فقط و فقط Rocky Linux رو می‌تونم تایید کنم.

سوال بحث یا ... اگر بود توی گروه بحث آزاد :
@DevChaiChat
👍2611🆒2👎1🗿1
اگر راجب چیزی اطلاعی نداریم
نه توضیح می‌دیم
نه تخصصی حرف می‌زنیم
نه شوخی می‌کنیم.


این اصول رو یادگرفتن از خود کد زدن هم مهمتر هست.
62👍287🗿3👏2
به طرز خیره کننده‌ای تعداد مشاغل
remote
برای پایتون و django با پرداخت دلاری مبالغ خوب توی چند هفته گذشته بالا رفته

حتماً یک سری بزنید (لینکدین)
جالبتر اینکه توی پایتون دیگه هوش مصنوعی و ... نیست
Senior Python Software Engineer
بسیار زیاد شده.

من هم که کرم مصاحبه رو دارم، چندتا مورد رو که مصاحبه دادم واقعاً سوالات بطور خیلی منطقی و درستی همون موضوعات
Software Engineering
هست، فارغ از هرگونه سوال درمورد
Framework
های معروف پایتون،
خیلی‌ها فهمیدند که کسی که core python رو بخوبی بلد باشه می‌تونه توی همون چندماه onboard و تسک‌های اولیه؛ فریمورک مورد نظر شرکت رو یاد بگیره

به امید روزی که توی ایران خودمون هم این موضوع جا افتاده بشه (هرجا که خودم مسئول باشم تمام تلاشم رو می‌کنم آدم‌هارو با میزان درک از core python استخدام کنم فریمورک رو همه می‌تونند زود یاد بگیرند)

یکی از خفن‌ترین مصاحبه‌ها سوالات الگوریتمش
2-3-4 Tree
بود که خب جزو مسائل سخت هست (حتی برای Senior Software Engineering که بسیار مصاحبه جذابی بود برای خودم).

پ.ن : منظورم از remote هم worldwide remote بود، که خب احتمال کار دادن به ایرانی‌ها توش بیشتر هست.
👍7221
line_profiler
نصب :
pip install line_profiler
این کد دقیقا همون کاری رو می‌کنه که مثال cProfile انجام میداد :
اگر تصویر رو نتونستید بخونید پست قبلی رو ببینید :

https://t.iss.one/pyHints/146

اما بالای هر تابع یک decorator جدید اضافه شده؛ از صحبت‌های قبلی ی وام بگیرم و اشاره کنم که line_profiler رو همه جا یا رو کل پروژه استفاده نمی‌کنیم بخصوص اینکه بسیار کند هم هست.
اول cProfile بعد توابع یا ... مشکوک رو میاریم داخل line_profile (درحد یادآوری گفتم اشاره کنم)

اسکریپت بالا رو ذخیره می‌کنیم و بعد دستور :
kernprof -l -v <script-name>.py
رو اجرا می‌کنیم که خب <script-name> اسمی هست که شما برای فایل پایتون خودتون انتخاب کردید.

همینجا هم اشاره کنم اگر -v رو توی دستور بالا فراموش کردید بزنید و کد خیلی طول می‌کشید خروجی بده غم غصه نداره (دیدم که میگم)
kernprof
خروجیش رو توی هر ۲ حالت توی همون دایرکتوری ذخیره می‌کنه ی فایل به اسم
<script-name>.py.lprof

می‌تونید بعدش دستور :
python -m line_profiler <script-name>.py.lprof

رو بزنید و خروجی بگیرید. ,و اما تفسیر خروجی
👍1711🌚1
توی خروجی به تعداد
@profile

هایی که نوشتید؛ خروجی خواهید داشت که کاملا از هم جدا هستند (توی مثال بالا Total time شروع نتیجه line_profiler رو نشان میده)

Timer unit 
باشه که جلوتر بگم چی هست ولی ۳ خط اول از اسم‌هاش مشخص هست :
Total time 
کل زمان اجرایی که تابع نیاز داشته.
File
اسم اسکریپت رو نشون میده (برای شرایطی که ماژول‌های/اسکریپت‌های تودرتو دارید)

Function
اسم تابع و اینکه از چه خطی توی اسکریپت شروع شده (file هم که میگه چه اسکریپتی)

توی خروجی یک جدول ۶ ستونی هم داریم :
Line #
یا همون line number خطی که کدهای مورد بحث داخلش هست

همینجا بپرم روی ستون آخر یعنی :
Line Contents
کدهای مورد بحث رو نمایش میده.
👍1531
Python Hints
توی خروجی به تعداد @profile هایی که نوشتید؛ خروجی خواهید داشت که کاملا از هم جدا هستند (توی مثال بالا Total time شروع نتیجه line_profiler رو نشان میده) Timer unit باشه که جلوتر بگم چی هست ولی ۳ خط اول از اسم‌هاش مشخص هست : Total time کل زمان اجرایی که…
.
Hits
نشون میده موقع اجرای اون تابع چندبار اون خط اجرا شده (مثلا به for های تو در تو نگاه کنید)

Time
میزان زمانی که طول کشیده تا اون خط کد اجرا بشه (واحدش Timer Unit هست) یعنی برای کد bubble_sort توی خط 5 که نوشته شده 1910.6 این رو نیاید ثانیه تفسیر کنید؛
1910.6 Timer unit 
طول کشیده که خود timer unit اینجا 1e-06 s هست (یعنی ۱ میکروثانیه)

Per Hit
گفتیم که Time زمان کل Hits هارو نشون میده اما اگر بخوایم بدونیم یک خط محاسباتی که داخل for loop نوشته شده چقدر طول کشیده اونوقت چطور باید متوجه شد ؟ این ستون دقیقا همین رو بهتون نشون میده

%Time
درصد زمان صرف شده روی این خط از کد نسبت به کل زمان صرف شده رو نشون میده (پس اول این ستون رو نگاه بندازید بهش و تفسیرش کنید)
👍1611