بنچمارک روشی برای بررسی و نظارت بر عملکرد برنامه شماست. میتوانید بهطور منظم بنچمارکها را اجرا کنید تا مشکلات عملکرد را تجزیه و تحلیل و اشکالزدایی کنید و مطمئن شوید که در تغییرات اخیر، پسرفت ایجاد نمیکنید.
اندروید دو کتابخانه و رویکرد بنچمارکگیری برای تحلیل و آزمایش انواع مختلف موقعیتها در برنامه شما ارائه میدهد: Macrobenchmark و Microbenchmark.
ماکروبنچمارک
کتابخانه Macrobenchmark تعاملات کاربر نهایی بزرگتر، مانند شروع به کار، تعامل با رابط کاربری و انیمیشنها را اندازهگیری میکند. این کتابخانه کنترل مستقیمی بر محیط عملکردی که آزمایش میکنید، ارائه میدهد. این کتابخانه به شما امکان میدهد کامپایل را کنترل کنید و به شما امکان میدهد برنامه خود را شروع و متوقف کنید تا مستقیماً شروع به کار واقعی برنامه یا پیمایش را اندازهگیری کنید.
کتابخانه Macrobenchmark رویدادها را تزریق میکند و نتایج را به صورت خارجی از یک برنامه آزمایشی که با تستهای شما ساخته شده است، نظارت میکند. بنابراین، هنگام نوشتن معیارها، شما مستقیماً کد برنامه خود را فراخوانی نمیکنید و در عوض به عنوان یک کاربر در برنامه خود پیمایش میکنید.
میکروبنچمارک
کتابخانه Microbenchmark به شما امکان میدهد کد برنامه را مستقیماً در یک حلقه محک بزنید. این کتابخانه برای اندازهگیری کار CPU طراحی شده است که عملکرد بهترین حالت - مانند گرم شدن درست در زمان (JIT) و دسترسی به دیسک ذخیره شده - را ارزیابی میکند که ممکن است با یک حلقه داخلی یا یک تابع داغ خاص مشاهده کنید. این کتابخانه فقط میتواند کدی را که میتوانید مستقیماً و به صورت جداگانه فراخوانی کنید، اندازهگیری کند.
موارد زیر موارد خوبی برای بنچمارک هستند: * وقتی برنامه شما نیاز به پردازش یک ساختار داده پیچیده دارد. * وقتی برنامه شما یک الگوریتم محاسباتی سنگین خاص دارد که در طول اجرای برنامه چندین بار فراخوانی میشود.
شما همچنین میتوانید بخشهایی از رابط کاربری خود را اندازهگیری کنید. برای مثال، میتوانید هزینه اتصال آیتم RecyclerView ، مدت زمان لازم برای پر کردن یک طرحبندی یا عملکرد پاس طرحبندی و اندازهگیری کلاس View خود را اندازهگیری کنید.
با این حال، شما نمیتوانید میزان تأثیر موارد بنچمارکشده بر تجربه کلی کاربر را اندازهگیری کنید. در برخی سناریوها، بنچمارک به شما نمیگوید که آیا در حال بهبود یک گلوگاه مانند افت فریم یا زمان شروع برنامه هستید یا خیر. به همین دلیل، شناسایی این گلوگاهها ابتدا با Android Profiler بسیار مهم است. پس از اینکه کدی را که میخواهید بررسی و بهینهسازی کنید پیدا کردید، حلقه بنچمارکشده میتواند بارها و بارها اجرا شود تا نتایج کمنویزتری ایجاد کند. این به شما امکان میدهد روی یک حوزه بهبود تمرکز کنید.
کتابخانهی Microbenchmark فقط اطلاعات مربوط به برنامهی شما را گزارش میدهد، نه اطلاعات کلی سیستم را. بنابراین، بهترین گزینه برای تجزیه و تحلیل عملکرد موقعیتهای خاص برنامه است، نه مواردی که ممکن است مربوط به مشکلات کلی سیستم باشد.
مقایسه کتابخانه معیار
| ماکروبنچمارک | میکروبنچمارک | |
|---|---|---|
| نسخه API | ۲۳ به بعد | ۱۴ به بعد |
| عملکرد | نقاط ورودی یا تعاملات سطح بالا، مانند شروع فعالیت یا پیمایش یک لیست را اندازهگیری کنید. | عملکردهای فردی را اندازهگیری کنید. |
| دامنه | تست خارج از فرآیند کل برنامه. | آزمایش ضمن فرآیند کار پردازنده. |
| سرعت | سرعت تکرار متوسط. میتواند از یک دقیقه بیشتر شود. | سرعت تکرار بالا. اغلب کمتر از 10 ثانیه. |
| ردیابی | نتایج با ردیابی پروفایل ارائه میشوند. | نمونهبرداری و ردیابی روش اختیاری. |
برای شما توصیه میشود
- توجه: متن لینک زمانی نمایش داده میشود که جاوا اسکریپت غیرفعال باشد.
- ایجاد پروفایلهای پایه {:#creating-profile-rules}
- کتابخانه JankStats
- مروری بر اندازهگیری عملکرد برنامه