مفاهیم و پیادهسازی Jetpack Compose
معیار سنجی روشی برای بازرسی و پایش عملکرد برنامه است. میتوانید بهطور منظم معیارسنجیها را اجرا کنید تا مشکلات عملکرد را تجزیهوتحلیل و اشکالزدایی کنید و مطمئن شوید که در تغییرات اخیر پسرفت ایجاد نمیکنید.
Android دو کتابخانه و رویکرد محکزنی برای تجزیهوتحلیل و آزمایش انواع مختلف موقعیتها در برنامه شما ارائه میدهد: Macrobenchmark و Microbenchmark.
محکزنی کلان
کتابخانه Macrobenchmark تعاملات بزرگتر کاربر نهایی را میسنجد، مانند راهاندازی، تعامل با واسط کاربر، و پویانماییها. این کتابخانه کنترل مستقیم بر محیط عملکردی که درحال آزمایش آن هستید ارائه میدهد. این نمایه به شما امکان میدهد کامپایل کردن را کنترل کنید و به شما اجازه میدهد برنامهتان را شروع و متوقف کنید تا مستقیماً راهاندازی یا پیمایش واقعی برنامه را اندازهگیری کنید.
کتابخانه Macrobenchmark رویدادها را تزریق میکند و نتایج را بهطور خارجی از برنامه آزمایشی که با آزمایشهای شما ساخته شده است نظارت میکند. بنابراین، هنگام نوشتن محکها، کد برنامهتان را مستقیماً فراخوانی نمیکنید و درعوض بهعنوان کاربر در برنامهتان پیمایش میکنید.
محکزنی خرد
کتابخانه Microbenchmark به شما امکان میدهد کد برنامه را مستقیماً در یک حلقه محک بزنید. این حالت برای اندازهگیری کار CPU طراحی شده است که بهترین عملکرد را ارزیابی میکند—مانند Just in Time (JIT) گرمشده و دسترسیهای دیسک ذخیرهشده در حافظه پنهان—که ممکن است با یک حلقه داخلی یا یک تابع داغ خاص ببینید. کتابخانه فقط میتواند کدی را اندازهگیری کند که میتوانید مستقیماً بهصورت مجزا فراخوانی کنید.
اینها موارد خوبی برای محکزنی هستند:
- وقتی برنامهتان باید ساختار داده پیچیدهای را پردازش کند.
- وقتی برنامهتان الگوریتم محاسباتی سنگین خاصی دارد که آن را چندین بار درطول اجرای برنامه فراخوانی میکند.
همچنین میتوانید بخشهایی از واسط کاربر را اندازهگیری کنید. برای مثال، میتوانید هزینه اتصال مورد RecyclerView، مدتزمان لازم برای گسترش چیدمان، یا عملکرد گذر چیدمان و اندازهگیری کلاس View را اندازهگیری کنید.
بااینحال، نمیتوانید بسنجید که موارد محکزدهشده چقدر در تجربه کلی کاربر تأثیر دارند. در برخی سناریوها، محکزنی به شما نمیگوید که آیا درحال بهبود گلوگاهی مثل فریمهای حذفشده یا زمان راهاندازی برنامه هستید یا نه. به همین دلیل، بسیار مهم است که ابتدا این گلوگاهها را با نمایهساز Android شناسایی کنید. پساز پیدا کردن کدی که میخواهید بررسی و بهینهسازی کنید، حلقه محکزدهشده میتواند بهطور مکرر اجرا شود تا نتایج با نویز کمتری ایجاد کند. این کار به شما امکان میدهد روی یک زمینه بهبود تمرکز کنید.
کتابخانه Microbenchmark فقط اطلاعات مربوط به برنامه شما را گزارش میکند، نه اطلاعات مربوط به کل سیستم را. بنابراین، این ابزار برای تجزیهوتحلیل عملکرد در شرایط خاص برنامه بهترین گزینه است، نه شرایطی که ممکن است به مشکلات کلی سیستم مربوط باشد.
مقایسه کتابخانه محکزنی
| محکزنی کلان | محکزنی خرد | |
|---|---|---|
| عملکرد | نقاط ورودی یا تعاملات سطح بالا را اندازهگیری کنید، مانند راهاندازی فعالیت یا پیمایش فهرست. | عملکردهای فردی را اندازهگیری کنید. |
| حوزه | آزمایش خارج از فرایند برنامه کامل. | آزمایش درحال انجام کار واحد پردازش مرکزی. |
| سرعت | سرعت تکرار متوسط. میتواند بیشتر از یک دقیقه باشد. | سرعت تکرار سریع. اغلب کمتر از ۱۰ ثانیه. |
| ردیابی | نتایج با ردگیریهای سیستم ارائه میشود. | نتایج بهطور پیشفرض با حداقل ردیابی سیستم و ردیابی روش ارائه میشوند. |
توصیهشده برای شما
- توجه: وقتی جاوا اسکریپت خاموش باشد، نوشتار پیوند نمایش داده میشود
- ایجاد «نمایههای مبنا» {:#creating-profile-rules}
- کتابخانه JankStats
- نمای کلی سنجش عملکرد برنامه