رفتار کتابخانه را با آرگومان های ابزار دقیق زیر پیکربندی کنید. میتوانید اینها را به پیکربندی Gradle خود اضافه کنید یا هنگام اجرای ابزار دقیق از خط فرمان مستقیماً آنها را اعمال کنید. برای تنظیم این آرگومان ها برای همه اجراهای آزمایشی Android Studio و خط فرمان، آنها را به testInstrumentationRunnerArguments
اضافه کنید:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
همچنین میتوانید هنگام اجرای بنچمارکها از Android Studio، آرگومانهای ابزار دقیق را تنظیم کنید. برای تغییر آرگومان ها به صورت زیر عمل کنید:
- با کلیک بر روی Edit و سپس روی پیکربندی، پیکربندی اجرا را ویرایش کنید.
- آرگومان های ابزار دقیق را با کلیک کردن روی More by Instrumentation arguments ویرایش کنید.
- آرگومان ابزار دقیق مورد نیاز را با کلیک کردن روی در زیر پارامترهای اضافی ابزار دقیق اضافه کنید.
اگر ماکرو بنچمارک را از خط فرمان اجرا می کنید، -P android.testInstrumentationRunnerArguments.[name of the argument]
:
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
اگر دستور am instrument
را مستقیماً فراخوانی میکنید (که ممکن است در محیطهای آزمایش CI صدق کند)، آرگومان را با -e
به am instrument
ارسال کنید:
adb shell am instrument -e androidx.benchmark.enabledRules BaselineProfile -w com.example.macrobenchmark/androidx.test.runner.AndroidJUnitRunner
برای اطلاعات بیشتر در مورد پیکربندی معیارها در CI، به معیارگذاری در CI مراجعه کنید
androidx.benchmark.compilation.enabled
به شما امکان می دهد کامپایل بین هر تکرار معیار را غیرفعال کنید. بهطور پیشفرض، برنامه هدف مجدداً نصب و بین هر معیار کامپایل میشود تا به CompilationMode
منتقل شده به measureRepeated
. غیرفعال کردن این امر به شما امکان میدهد از نصب مجدد و کامپایل صرفنظر کنید، برای مثال اگر میخواهید قبل از اجرای مجموعه آزمایشی یک بار برنامه هدف را به طور کامل کامپایل کنید و همه معیارها را در برابر آن هدف کاملاً کامپایل شده اجرا کنید.
- نوع آرگومان: بولی
- پیشفرض به:
true
androidx.benchmark.dryRunMode.enable
به شما امکان می دهد معیارها را در یک حلقه اجرا کنید تا بررسی کنید که آیا آنها به درستی کار می کنند یا خیر. می توانید آن را با آزمایش های معمولی به عنوان بخشی از تأیید استفاده کنید.
- نوع آرگومان: بولی
- پیشفرض به:
false
androidx.benchmark.enabledRules
به اجرای فیلتر کردن فقط برای یک نوع آزمایش اجازه میدهد: تولید نمایه خط پایه یا تست ماکرو بنچمارک. لیست های جدا شده با کاما نیز پشتیبانی می شوند.
- نوع آرگومان : رشته ای
- گزینه های موجود:
-
Macrobenchmark
-
BaselineProfile
-
- پیش فرض برای: مشخص نشده است
androidx.benchmark.junit4.SideEffectRunListener
اگر کار پسزمینه نامرتبط در حین اجرای معیار اجرا شود، ممکن است نتایج معیارهای متناقضی دریافت کنید.
برای غیرفعال کردن کار پسزمینه در حین محک زدن، نوع آرگومان ابزار listener
را روی androidx.benchmark.junit4.SideEffectRunListener
تنظیم کنید.
- نوع آرگومان: رشته ای
- گزینه های موجود:
-
androidx.benchmark.junit4.SideEffectRunListener
-
- پیش فرض به: مشخص نشده است
androidx.benchmark.fullTracing.enable
نقاط ردیابی androidx.tracing.perfetto
مانند ردیابی ترکیب بندی Jetpack Compose را فعال می کند.
شما باید پروژه خود را تنظیم کنید تا بتوانید ردیابی ترکیب را از معیارها ثبت کنید. برای اطلاعات بیشتر، به ثبت ردیابی با Jetpack Macrobenchmark مراجعه کنید.
- نوع استدلال : بولی
- پیشفرضها به :
false
androidx.benchmark.profiling.mode
امکان گرفتن فایل های ردیابی را در حین اجرای معیارها فراهم می کند. گزینههای موجود مانند گزینههای کتابخانه Microbenchmark هستند—برای اطلاعات بیشتر، به توضیحات در Profile a Microbenchmark مراجعه کنید.
- نوع آرگومان: رشته ای
- گزینه های موجود:
-
MethodTracing
-
StackSampling
-
None
-
- پیش فرض برای:
None
androidx.benchmark.startupProfiles.enable
به شما امکان میدهد تولید نمایههای راهاندازی را در طول محک زدن غیرفعال کنید.
- نوع استدلال : بولی
- پیشفرض به:
true
androidx.benchmark.suppressErrors
لیست خطاهای جدا شده با کاما را می پذیرد تا به هشدار تبدیل شود.
- نوع آرگومان : لیست رشته ها
گزینه های موجود:
DEBUGGABLE
خطای
DEBUGGABLE
نشان می دهد که بسته هدف باdebuggable=true
در مانیفست خود اجرا می شود، که عملکرد زمان اجرا را برای پشتیبانی از ویژگی های اشکال زدایی به شدت کاهش می دهد. برای جلوگیری از این خطا، بنچمارک ها را باdebuggable=false
اجرا کنید. آرگومان قابل اشکالزدایی بر سرعت اجرا تأثیر میگذارد به گونهای که بهبود معیار ممکن است به تجربه کاربر واقعی منتقل نشود یا ممکن است عملکرد انتشار را کاهش دهد.LOW-BATTERY
هنگامی که باتری کم است، دستگاه ها اغلب برای صرفه جویی در باتری باقیمانده، عملکرد را کاهش می دهند، به عنوان مثال با غیرفعال کردن هسته های بزرگ. این مشکل حتی زمانی که دستگاهها به برق وصل هستند نیز رخ میدهد. فقط در صورتی این خطا را سرکوب کنید که به عمد برنامه را با عملکرد کاهش یافته پروفایل کنید.
EMULATOR
خطای
EMULATOR
به شما می گوید که بنچمارک روی شبیه ساز اجرا می شود که نماینده دستگاه های کاربر واقعی نیست. بهبود معیارهای شبیهساز ممکن است به تجربه یک کاربر واقعی منتقل نشود یا ممکن است عملکرد واقعی دستگاه را کاهش دهد. به جای آن باید از یک دستگاه فیزیکی برای محک زدن استفاده کنید. این خطا را با احتیاط کامل سرکوب کنید.NOT-PROFILEABLE
بسته هدف
$packageName
بدون<profileable shell=true>
در حال اجرا است. Profileable در Android 10 و 11 مورد نیاز است تا به Macrobenchmark اجازه دهد اطلاعات ردیابی دقیق را از فرآیند هدف، مانند بخشهای ردیابی سیستم تعریف شده در برنامه یا کتابخانهها، بگیرد. این خطا را با احتیاط کامل سرکوب کنید.METHOD-TRACING-ENABLED
اجرای Macrobenchmark برای برنامه در حال محک زدن، ردیابی روش را فعال کرده است. این باعث می شود ماشین مجازی کندتر از حد معمول کار کند، بنابراین فقط معیارهای فایل های ردیابی را به صورت نسبی در نظر بگیرید - برای مثال، مقایسه سرعت اجرای اول با اجرای دوم. اگر معیارهای ساختها را با گزینههای مختلف ردیابی روش مقایسه کنید، سرکوب این خطا میتواند منجر به نتایج نادرست شود.
پیشفرض به : یک لیست خالی
اضافیTestOutputDir
محل ذخیره گزارشهای معیار JSON و نتایج نمایهسازی در دستگاه را پیکربندی میکند.
- نوع آرگومان: رشته مسیر
- پیشفرضها: دایرکتوری خارجی APK را آزمایش کنید
برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- آرگومان های ابزارسنجی میکروبنچمارک
- ایجاد پروفایل های پایه
- کتابخانه JankStats