PYHINTS Telegram 288
Python Hints
ساده‌ترین راه اجرای memray استفاده از دستور run هست + flamegraph همونطور که قبلا گفتم خروجی تمام پروفایلینگ‌هارو باید نگه دارید و نمودار لایو اینکار رو نمی‌کنه پس قبل از استفاده از نمودار لایو (حین اجرای برنامه تمام دستورات و مصرف مموری‌هارو نشون میده) ازین…
دستور run چندتا option هم داره که هرکدوم توی شرایط خاص استفاده می‌شه :

memray run --native <my-script>.py

این حالت برای وقتایی هست که می‌خواید اثبات کنید numpy, pandas , ... هستند که دارند ازین میزان رم استفاده می‌کنند یا اینکه می‌خواهید بین توابع مختلفی که پیکج‌ها ارائه می‌دهند مقایسه انجام بدید.
گرفتن ریپورت html روی این حالت می‌تونه طولانی باشه (جزو حالاتی هست که هم bin هم html بهتره روی یک سیستم خروجی گرفته بشه)

memray run --trace-python-allocators <my-script>.py

بجای گزارشات کلی که توی تغییر سایز memory pool گرفته می‌شه به ازای ایجاد و از بین رفتن هر آبجکت براتون گزارش مموری میده که باز هم خروجی خیلی کندتری خواهد داشت؛ و البته اطلاعات بسیار بیشتر.

memray run --follow-fork <my-script>.py


همونطور که از اسمش پیداس می‌گه اگر از parent process فورک گرفته شد وضعیت مموری اون child process رو هم توی ریپورت بیار.

از بین ۳ تا آپشن بالا توی این مدت شخصا فقط از native استفاده کردم چندبار (باقی موارد رو نیاز نداشتم)

اما دوتا آپشن دوست داشتنی دیگه هم وجود داره :
memray run --live <my-script>.py


همیشه بعد از اینکه دستور run رو اجرا کردم (ذخیره بشه) و بعد گزارش html رو آماده کردم؛ تا وقتی دارم روی memory optimization کار می‌کنم تنها دائما از live option استفاده می‌کنم

PID, Thread, Samples, Duration, Max heap size, current heap size
و ... رو بهم میده (برای current heap size) چون توی حالت لایو سریع تغییر می‌کنه از

time.sleep(10)
استفاده می‌کنم توی جایی که مشکوک هستم به میزان مصرف مموری و اینجوری ی پنجره ۱۰ ثانیه‌ای برای خودم باز می‌کنم تا دقیق بررسی کنم توی رم چه اتفاقی داره رخ میده.

memray run --live-remote <my-script>.py

هم همین کار رو می‌کنه اما گزارشات رو روی یک port خاص میفرسته (بازم من ازش استفاده نکردم)

memray run --live --native <my-script>.py

پر استفاده‌ترین حالت بعد از live option برای من استفاده ترکیبی از live و native هست (البته که حوصله آدم سر میره بعضی وقت‌ها تا گزارشش آماده بشه)

حتما برای کاستومایز کردن خروجی‌ها و بررسی دقیق‌تر داکیومنتش رو نگاه کنید (سعی کردم مهمترین مواردی که شخصا استفاده می‌کنم رو بگم فقط).
👍1481🌚1



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

دستور run چندتا option هم داره که هرکدوم توی شرایط خاص استفاده می‌شه :

memray run --native <my-script>.py

این حالت برای وقتایی هست که می‌خواید اثبات کنید numpy, pandas , ... هستند که دارند ازین میزان رم استفاده می‌کنند یا اینکه می‌خواهید بین توابع مختلفی که پیکج‌ها ارائه می‌دهند مقایسه انجام بدید.
گرفتن ریپورت html روی این حالت می‌تونه طولانی باشه (جزو حالاتی هست که هم bin هم html بهتره روی یک سیستم خروجی گرفته بشه)

memray run --trace-python-allocators <my-script>.py

بجای گزارشات کلی که توی تغییر سایز memory pool گرفته می‌شه به ازای ایجاد و از بین رفتن هر آبجکت براتون گزارش مموری میده که باز هم خروجی خیلی کندتری خواهد داشت؛ و البته اطلاعات بسیار بیشتر.

memray run --follow-fork <my-script>.py


همونطور که از اسمش پیداس می‌گه اگر از parent process فورک گرفته شد وضعیت مموری اون child process رو هم توی ریپورت بیار.

از بین ۳ تا آپشن بالا توی این مدت شخصا فقط از native استفاده کردم چندبار (باقی موارد رو نیاز نداشتم)

اما دوتا آپشن دوست داشتنی دیگه هم وجود داره :
memray run --live <my-script>.py


همیشه بعد از اینکه دستور run رو اجرا کردم (ذخیره بشه) و بعد گزارش html رو آماده کردم؛ تا وقتی دارم روی memory optimization کار می‌کنم تنها دائما از live option استفاده می‌کنم

PID, Thread, Samples, Duration, Max heap size, current heap size
و ... رو بهم میده (برای current heap size) چون توی حالت لایو سریع تغییر می‌کنه از

time.sleep(10)
استفاده می‌کنم توی جایی که مشکوک هستم به میزان مصرف مموری و اینجوری ی پنجره ۱۰ ثانیه‌ای برای خودم باز می‌کنم تا دقیق بررسی کنم توی رم چه اتفاقی داره رخ میده.

memray run --live-remote <my-script>.py

هم همین کار رو می‌کنه اما گزارشات رو روی یک port خاص میفرسته (بازم من ازش استفاده نکردم)

memray run --live --native <my-script>.py

پر استفاده‌ترین حالت بعد از live option برای من استفاده ترکیبی از live و native هست (البته که حوصله آدم سر میره بعضی وقت‌ها تا گزارشش آماده بشه)

حتما برای کاستومایز کردن خروجی‌ها و بررسی دقیق‌تر داکیومنتش رو نگاه کنید (سعی کردم مهمترین مواردی که شخصا استفاده می‌کنم رو بگم فقط).

BY Python Hints




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

View MORE
Open in Telegram


Telegram News

Date: |

bank east asia october 20 kowloon In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. The optimal dimension of the avatar on Telegram is 512px by 512px, and it’s recommended to use PNG format to deliver an unpixelated avatar. How to create a business channel on Telegram? (Tutorial) Image: Telegram.
from us


Telegram Python Hints
FROM American