به طور پیش فرض، Microbenchmarks اطلاعاتی در مورد زمان بندی و تخصیص کدهای اجرا شده به شما می دهد. اگر میخواهید بررسی کنید که چرا کد اندازهگیریشده به کندی اجرا میشود، ردیابی روش را که بهطور پیشفرض در نسخههای سیستمعامل پشتیبانیشده ثبت شده است، بررسی کنید یا سایر تنظیمات پروفایل را انتخاب کنید.
برای انتخاب پیکربندی نمایهگر، آرگومان اجرای ابزار دقیق androidx.benchmark.profiling.mode
با یکی از آرگومانهای MethodTracing
(پیشفرض)، StackSampling
یا None
اضافه کنید، همانطور که در قطعه زیر نشان داده شده است.
برای اطلاعات بیشتر در مورد گزینهها، به روشهای ضبط جاوا/کاتلین مراجعه کنید. MethodTracing
معادل ردیابی است و StackSampling
معادل نمونه برداری است که در آن سند تعریف شده است.
شیار
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 در فهرست راهنما کپی میشود. برای بررسی نتایج نمایه سازی در Android Studio، پیوند Method Trace یا Stack Sampling Trace را در نتایج microbenchmark انتخاب کنید.
روش ردیابی
ردیابی روش زمانی مفید است که میخواهید کد خود را بهینه کنید زیرا میتواند به شما کمک کند روشهایی را شناسایی کنید که نسبت به سایرین زمان بیشتری برای اجرا دارند. سپس می توانید روی بهینه سازی روش هایی تمرکز کنید که بیشترین تأثیر را بر عملکرد دارند.
نمایه سازی به ترتیب پس از اندازه گیری کد انجام می شود، بنابراین آزمایش شما هم زمان بندی دقیق و هم نتایج پروفایل را خروجی می دهد.
ردیابی روش به طور پیش فرض روشن است.
StackSampling
ردیابی نمونه همچنین می تواند به شناسایی روش های گران قیمت بدون سربار عملکرد ردیابی روش کمک کند. با این حال، اگر برنامه شما پس از ضبط پشته تماس، روشی را وارد کند و روش قبل از ضبط بعدی خارج شود، در این صورت فراخوانی روش ثبت نمیشود. برای ردیابی صحیح روش ها با چرخه عمر کوتاه، به جای ردیابی نمونه از ردیابی روش استفاده کنید.
با نمونه برداری پشته، نمونه های معیار پس از اتمام گرم کردن، پشته ها را فراخوانی می کنند. با استفاده از آرگومان های ابزار دقیق می توانید رفتار نمونه برداری مانند تعداد دفعات نمونه و مدت زمان نمونه برداری را کنترل کنید.
در Android 10 (API 29) و بالاتر، نمونهبرداری پشته از Simpleperf برای نمونهگیری از پشتههای تماس برنامه، از جمله کد ++C استفاده میکند. در Android 9 (API 28) و پایینتر، از Debug.startMethodTracingSampling
برای گرفتن نمونههای پشته استفاده میکند.
شما می توانید این حالت پروفایل را با افزودن آرگومان های ابزار دقیق دیگر پیکربندی کنید:
androidx.benchmark.profiling.sampleFrequency
- تعداد نمونه های پشته ای برای گرفتن در هر ثانیه.
- نوع آرگومان: عدد صحیح
- پیش فرض 1000 نمونه در ثانیه است.
androidx.benchmark.profiling.sampleDurationSeconds
- مدت زمان اجرای معیار.
- نوع آرگومان: عدد صحیح
- پیش فرض تا 5 ثانیه است.
androidx.benchmark.profiling.skipWhenDurationRisksAnr
- زمانی که احتمال ایجاد ANR از ردیابی روش وجود دارد، صرفنظر می کند. شما باید این را برای اجرای CI فعال نگه دارید، زیرا ANR ها می توانند در طول اجرای طولانی CI مشکلاتی ایجاد کنند.
- نوع آرگومان: بولی
- پیش فرض ها به
true
هیچ کدام
این آرگومان یک فایل نمایه سازی را نمی گیرد. اطلاعات مربوط به زمان بندی و تخصیص هنوز اندازه گیری می شود.
{% کلمه به کلمه %}برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- آرگومان های ابزارسنجی میکروبنچمارک
- معیارها را در Continuous Integration اجرا کنید