آرگومان های ابزار دقیق را اضافه کنید

رفتار کتابخانه را با آرگومان های ابزار دقیق زیر پیکربندی کنید. می‌توانید اینها را به پیکربندی Gradle خود اضافه کنید یا هنگام اجرای ابزار دقیق از خط فرمان مستقیماً آنها را اعمال کنید. برای تنظیم این آرگومان ها برای همه اجراهای آزمایشی Android Studio و خط فرمان، آنها را به testInstrumentationRunnerArguments اضافه کنید:

android {
    defaultConfig {
        // ...
        testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
    }
}

همچنین می‌توانید هنگام اجرای بنچمارک‌ها از Android Studio، آرگومان‌های ابزار دقیق را تنظیم کنید. برای تغییر آرگومان ها به صورت زیر عمل کنید:

  1. با کلیک بر روی Edit و سپس روی پیکربندی، پیکربندی اجرا را ویرایش کنید.
    ویرایش پیکربندی اجرا
    شکل 1. پیکربندی اجرا را ویرایش کنید.
  2. آرگومان های ابزار دقیق را با کلیک کردن روی More by Instrumentation arguments ویرایش کنید.
    آرگومان های ابزار دقیق را ویرایش کنید
    شکل 2. آرگومان های ابزار دقیق را ویرایش کنید.
  3. آرگومان ابزار دقیق مورد نیاز را با کلیک کردن روی افزودن زیر پارامترهای اضافی ابزار دقیق اضافه کنید.
    آرگومان ابزار دقیق مورد نیاز را اضافه کنید
    شکل 3. آرگومان ابزار دقیق مورد نیاز را اضافه کنید.

اگر مستقیماً از خط فرمان تماس می‌گیرید، از -P android.testInstrumentationRunnerArguments.[name of the argument] .

./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile

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 را آزمایش کنید
{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}