رفتار Microbenchmark را با آرگومان های ابزار دقیق زیر پیکربندی کنید. میتوانید اینها را به پیکربندی Gradle خود اضافه کنید یا هنگام اجرای ابزار دقیق از خط فرمان مستقیماً آنها را اعمال کنید. برای تنظیم این آرگومان ها برای همه اجراهای آزمایشی Android Studio و خط فرمان، آنها را به testInstrumentationRunnerArguments
اضافه کنید:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
همچنین میتوانید هنگام اجرای بنچمارکها از Android Studio، آرگومانهای ابزار دقیق را تنظیم کنید. برای تغییر آرگومان ها به صورت زیر عمل کنید:
- با کلیک بر روی Edit و انتخاب پیکربندی مورد نظر برای ویرایش، پیکربندی اجرا را ویرایش کنید.
- با کلیک روی در کنار فیلد آرگومان های ابزار دقیق، آرگومان های ابزار دقیق را ویرایش کنید.
- روی کلیک کنید و آرگومان ابزار دقیق را اضافه کنید.
اگر معیار را از خط فرمان اجرا می کنید، -P android.testInstrumentationRunnerArguments.[name of the argument]
:
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling
اگر دستور am instrument را مستقیماً فراخوانی میکنید (که ممکن است در محیطهای آزمایش CI صدق کند)، آرگومان را با -e
به am instrument
ارسال کنید:
adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner
برای اطلاعات بیشتر در مورد پیکربندی معیارها در CI، به معیارگذاری در CI مراجعه کنید
اضافیTestOutputDir
محل ذخیره گزارشهای معیار JSON و نتایج نمایهسازی در دستگاه را پیکربندی میکند.
- نوع آرگومان: رشته مسیر فایل
- پیشفرضها: دایرکتوری خارجی APK را آزمایش کنید
androidx.benchmark.dryRunMode.enable
به شما امکان می دهد معیارها را در یک حلقه اجرا کنید تا بررسی کنید که آنها به درستی کار می کنند.
این یعنی:
- خطاهای پیکربندی اعمال نمیشوند (مثلاً برای آسانتر کردن اجرای آزمایشهای صحت منظم روی شبیهسازها)
- معیار تنها یک حلقه را اجرا می کند، بدون گرم کردن
- اندازهگیریها و ردیابیها برای کاهش زمان اجرا ثبت نمیشوند
این کار برای توان آزمایشی و اعتبارسنجی منطق معیار بیش از صحت ساخت و اندازهگیری بهینه میشود.
- نوع آرگومان: بولی
- پیش فرض ها به:
false
androidx.benchmark.iterations
تعداد تکرار هدف مبتنی بر زمان را نادیده می گیرد تا به اطمینان از میزان ثابت کار کمک کند. این معمولاً فقط با فعال کردن پروفایل برای کمک به اطمینان از انجام مقدار ثابت کار در یک ردیابی پروفایل هنگام مقایسه اجراها یا اجراهای مختلف مفید است. در سناریوهای دیگر، این احتمالاً دقت یا ثبات اندازهگیریها را کاهش میدهد.
- نوع آرگومان: عدد صحیح
- پیش فرض به: مشخص نشده است
androidx.benchmark.junit4.SideEffectRunListener
اگر کار پسزمینه نامرتبط در حین اجرای معیار اجرا شود، ممکن است نتایج معیارهای متناقضی دریافت کنید.
برای غیرفعال کردن کار پسزمینه در حین محک زدن، نوع آرگومان ابزار listener
را روی androidx.benchmark.junit4.SideEffectRunListener
تنظیم کنید.
- نوع آرگومان: رشته ای
- گزینه های موجود:
-
androidx.benchmark.junit4.SideEffectRunListener
-
- پیش فرض به: مشخص نشده است
androidx.benchmark.output.enable
نوشتن فایل JSON نتیجه در حافظه خارجی را فعال می کند.
- نوع آرگومان: بولی
- پیشفرض به:
true
androidx.benchmark.profiling.mode
امکان گرفتن فایل های ردیابی را در حین اجرای معیارها فراهم می کند. برای گزینه های موجود، نمایه یک Microbenchmark را ببینید.
توجه داشته باشید که برخی از نسخههای سیستمعامل اندروید از ردیابی روش بدون تحت تأثیر قرار گرفتن اندازهگیریهای بعدی پشتیبانی نمیکنند. Microbenchmark برای جلوگیری از این امر یک استثنا ایجاد میکند، بنابراین از آرگومان پیشفرض برای ثبت ردیابیهای متد تنها زمانی استفاده کنید که انجام این کار ایمن است. به شماره 316174880 مراجعه کنید.
- نوع آرگومان: رشته ای
- گزینه های موجود:
-
MethodTracing
-
StackSampling
-
None
-
- پیشفرضها: نسخه ایمن
MethodTracing
که تنها در صورتی ردیابی روش را ثبت میکند که دستگاه بتواند بدون تأثیر بر اندازهگیری این کار را انجام دهد.
androidx.benchmark.suppressErrors
لیستی از خطاهای جدا شده با کاما را می پذیرد تا به هشدار تبدیل شود.
- نوع آرگومان: لیست رشته ها
- گزینه های موجود:
-
DEBUGGABLE
-
LOW-BATTERY
-
EMULATOR
-
CODE-COVERAGE
-
UNLOCKED
-
SIMPLEPERF
-
ACTIVITY-MISSING
-
- پیشفرض به: یک لیست خالی
androidx.benchmark.startupMode.enable (منسوخ شده)
رفتار حلقه را برای پشتیبانی از کدهای محک در هنگام راه اندازی مجدداً پیکربندی می کند. معیارها بدون حلقه گرم کردن برای 10 اندازه گیری اجرا می شوند. برای به حداقل رساندن سربار در میکروبنچمارکها، میانگینگیری حلقه غیرفعال است.
- نوع آرگومان: بولی
- پیشفرض به:
false
برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- آرگومان های ابزار دقیق معیار ماکرو
- نمایه یک Microbenchmark
- ایجاد نمایه های پایه {:#creating-profile-rules}