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