tgoop.com/pyHints/288
Create:
Last Update:
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