به طور پیش فرض، Microbenchmarks اطلاعاتی در مورد زمان بندی و تخصیص کدهای اجرا شده به شما می دهد. اگر میخواهید بررسی کنید که چرا کد اندازهگیریشده به کندی اجرا میشود، میتوانید معیارها را با پروفیل CPU متصل شده اجرا کنید.
برای انتخاب پیکربندی پروفایلر، آرگومان اجرای ابزار دقیق androidx.benchmark.profiling.mode
با یکی از آرگومان های MethodTracing
، StackSampling
یا None
اضافه کنید، همانطور که در قطعه زیر نشان داده شده است.
برای اطلاعات بیشتر درباره گزینهها، به انتخاب پیکربندی ضبط مراجعه کنید. MethodTracing
معادل "Trace Java Methods" و StackSampling
معادل "Sample Java Methods" است که در آن سند تعریف شده است.
شیار
android { defaultConfig { // must be one of: 'None', 'StackSampling', or 'MethodTracing' testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"]= 'StackSampling' } }
کاتلین
android { defaultConfig { // must be one of: 'None', 'StackSampling', or 'MethodTracing' testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"] = "StackSampling" } }
هنگامی که یک معیار را نمایه میکنید، یک فایل .trace
خروجی به همراه نتایج JSON در فهرست راهنما کپی میشود. برای بررسی نتایج نمایه سازی در نمایه CPU در Android Studio، File > Open را انتخاب کنید. برای کسب اطلاعات بیشتر در مورد خواندن و درک ردپاها، به Inspect Traces مراجعه کنید.
روش ردیابی
ردیابی روش زمانی مفید است که میخواهید کد خود را بهینه کنید زیرا میتواند به شما کمک کند روشهایی را شناسایی کنید که نسبت به سایرین زمان بیشتری برای اجرا دارند. سپس می توانید روی بهینه سازی روش هایی تمرکز کنید که بیشترین تأثیر را بر عملکرد دارند.
نمایه سازی به ترتیب پس از اندازه گیری کد انجام می شود، بنابراین آزمایش شما هم زمان بندی دقیق و هم نتایج پروفایل را خروجی می دهد.
StackSampling
ردیابی نمونه همچنین می تواند به شناسایی روش های گران قیمت بدون سربار عملکرد ردیابی روش کمک کند. با این حال، اگر برنامه شما پس از ضبط پشته تماس، روشی را وارد کند و روش قبل از ضبط بعدی خارج شود، در این صورت فراخوانی روش ثبت نمیشود. برای ردیابی صحیح روش ها با چرخه عمر کوتاه، به جای ردیابی نمونه از ردیابی روش استفاده کنید.
با نمونه برداری پشته، نمونه های معیار پس از اتمام گرم کردن، پشته ها را فراخوانی می کنند. شما می توانید فرکانس نمونه و مدت زمان نمونه برداری را با استفاده از آرگومان های ابزار دقیق کنترل کنید.
در Android 10 (API 29) و بالاتر، نمونهبرداری پشته از Simpleperf برای نمونهگیری از پشتههای تماس برنامه، از جمله کد ++C استفاده میکند. در Android 9 (API 28) و پایینتر، از Debug.startMethodTracingSampling
برای گرفتن نمونههای پشته استفاده میکند.
شما می توانید این حالت پروفایل را با افزودن آرگومان های ابزار دقیق دیگر پیکربندی کنید:
androidx.benchmark.profiling.sampleFrequency
- تعداد نمونه های پشته ای برای گرفتن در هر ثانیه.
- نوع آرگومان: عدد صحیح
- پیش فرض 1000 نمونه در ثانیه است.
androidx.benchmark.profiling.sampleDurationSeconds
- مدت زمان اجرای معیار.
- نوع آرگومان: عدد صحیح
- پیش فرض تا 5 ثانیه است.
هیچ کدام
این آرگومان یک فایل نمایه سازی را نمی گیرد. اطلاعات مربوط به زمان بندی و تخصیص هنوز اندازه گیری می شود.
{% کلمه به کلمه %}برای شما توصیه می شود
- توجه: متن پیوند زمانی که جاوا اسکریپت خاموش است نمایش داده می شود
- آرگومان های ابزارسنجی میکروبنچمارک
- معیارها را در Continuous Integration اجرا کنید