رفتار 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 را ببینید.
- نوع آرگومان: رشته ای
- گزینه های موجود:
-
MethodTracing
-
StackSampling
-
None
-
- پیش فرض برای:
None
androidx.benchmark.suppressErrors
لیستی از خطاهای جدا شده با کاما را می پذیرد تا به اخطار تبدیل شود.
- نوع آرگومان: لیست رشته ها
- گزینه های موجود:
-
DEBUGGABLE
-
LOW-BATTERY
-
EMULATOR
-
CODE-COVERAGE
-
UNLOCKED
-
SIMPLEPERF
-
ACTIVITY-MISSING
-
- پیشفرض به: یک لیست خالی
androidx.benchmark.startupMode.enable (منسوخ شده)
رفتار حلقه را برای پشتیبانی از کدهای محک در هنگام راه اندازی مجدداً پیکربندی می کند. معیارها بدون حلقه گرم کردن برای 10 اندازه گیری اجرا می شوند. برای به حداقل رساندن سربار در میکروبنچمارکها، میانگینگیری حلقه غیرفعال است.
- نوع آرگومان: بولی
- پیش فرض ها به:
false
برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- آرگومان های ابزار دقیق معیار ماکرو
- نمایه یک Microbenchmark
- ایجاد نمایه های پایه {:#creating-profile-rules}