Araç bağımsız değişkenleri ekleme

Kitaplığın davranışını aşağıdaki araç bağımsız değişkenleriyle yapılandırın. Bunları Gradle yapılandırmanıza ekleyebilir veya araçları komut satırından çalıştırırken doğrudan uygulayabilirsiniz. Tüm Android Studio ve komut satırı test çalıştırmaları için bu bağımsız değişkenleri ayarlamak isterseniz bunları testInstrumentationRunnerArguments klasörüne ekleyin:

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

Karşılaştırmaları Android Studio'dan çalıştırırken araç bağımsız değişkenleri de oluşturabilirsiniz. Bağımsız değişkenleri değiştirmek için aşağıdakileri yapın:

  1. Düzenle'yi ve ardından yapılandırmayı tıklayarak çalıştırma yapılandırmasını düzenleyin.
    çalıştırma yapılandırmasını düzenle
    Şekil 1. Çalıştırma yapılandırmasını düzenleyin.
  2. Araç bağımsız değişkenlerini düzenlemek için Diğer'i tıklayarak Araç bağımsız değişkenleri'ni tıklayın.
    araç bağımsız değişkenlerini düzenle
    Şekil 2. Araç bağımsız değişkenlerini düzenleyin.
  3. Araç Ek Parametreler altında Ekle seçeneğini tıklayarak gerekli araç bağımsız değişkenini ekleyin.
    gerekli araç bağımsız değişkenini ekle
    Şekil 3. Gerekli araç bağımsız değişkenini ekleyin.

Doğrudan komut satırından arama yapıyorsanız -P android.testInstrumentationRunnerArguments.[name of the argument] komutunu kullanın.

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

androidx.benchmark.compilation.enabled

Karşılaştırmanın her yinelemesi arasındaki derlemeyi devre dışı bırakmanıza olanak tanır. Varsayılan olarak hedef uygulama yeniden yüklenir ve measureRepeated'e iletilen CompilationMode dikkate alınarak her karşılaştırma arasında yeniden derlenir. Bu seçeneği devre dışı bırakırsanız hem yeniden yükleme hem de derleme işlemini atlayabilirsiniz. Örneğin, test paketini çalıştırmadan önce hedef uygulamayı bir kez tamamen derlemek ve tüm karşılaştırmaları bu tamamen derlenmiş hedefle çalıştırmak istiyorsanız atlayabilirsiniz.

  • Bağımsız değişken türü: boole
  • Varsayılan ayar: true

androidx.benchmark.dryRunMode.enable

Düzgün çalışıp çalışmadıklarını doğrulamak için tek bir döngüde karşılaştırmalar çalıştırmanızı sağlar. Doğrulamanın bir parçası olarak düzenli testlerle birlikte kullanabilirsiniz.

  • Bağımsız değişken türü: boole
  • Varsayılan ayar: false

androidx.benchmark.enabledRules

Yalnızca tek bir test türünde yapılan filtrelemeye olanak tanır: Temel Profil oluşturma veya Macrobenchmark testi. Virgülle ayrılmış listeler de desteklenir.

  • Bağımsız değişken türü: dize
  • Mevcut seçenekler:
    • Macrobenchmark
    • BaselineProfile
  • Varsayılan ayar: Belirtilmedi

androidx.benchmark.junit4.SideEffectRunListener

Karşılaştırma çalışırken alakasız arka plan çalışmaları yürütülürse tutarsız karşılaştırma sonuçları alabilirsiniz.

Karşılaştırma sırasında arka plan çalışmasını devre dışı bırakmak için listener araç bağımsız değişken türünü androidx.benchmark.junit4.SideEffectRunListener olarak ayarlayın.

  • Bağımsız değişken türü: dize
  • Mevcut seçenekler:
    • androidx.benchmark.junit4.SideEffectRunListener
  • Varsayılan ayar: belirtilmedi

androidx.benchmark.fullTracing.enable

Jetpack Compose gibi beste izleme gibi androidx.tracing.perfetto izleme noktalarını etkinleştirir.

Karşılaştırmalardan kompozisyon işlemlerini yakalayabilmek için projenizi oluşturmanız gerekir. Daha fazla bilgi için Jetpack Macrobenchmark ile iz yakalama bölümüne bakın.

  • Bağımsız değişken türü: boole
  • Varsayılan ayar: false

androidx.benchmark.profilleme.modu

Karşılaştırmaları çalıştırırken izleme dosyalarının yakalanmasını sağlar. Kullanılabilir seçenekler, Microbenchmark kitaplığı için sunulanlarla aynıdır. Daha fazla bilgi için Profile a Microbenchmark atama sayfasındaki açıklamalara bakın.

  • Bağımsız değişken türü: dize
  • Mevcut seçenekler:
    • MethodTracing
    • StackSampling
    • None
  • Varsayılan ayar: None

androidx.benchmark.startupProfiles.enable

Karşılaştırma sırasında başlangıç profili oluşturulmasını devre dışı bırakmanıza olanak tanır.

  • Bağımsız değişken türü: boole
  • Varsayılan ayar: true

androidx.benchmark.suppressErrors

Uyarıya dönüştürmek için virgülle ayrılmış hata listesini kabul eder.

  • Bağımsız değişken türü: dizelerin listesi
  • Kullanılabilir seçenekler:

    • DEBUGGABLE

      DEBUGGABLE hatası, hedef paketin manifest dosyasında debuggable=true ile çalıştığını gösterir. Bu, hata ayıklama özelliklerini desteklemek için çalışma zamanı performansını büyük ölçüde azaltır. Bu hatadan kaçınmak için debuggable=false ile karşılaştırma yapın. Hata ayıklaması yapılabilir bağımsız değişken, yürütme hızını etkiler. Bu durum, karşılaştırma iyileştirmelerinin gerçek kullanıcı deneyimine aktarılmayabileceği veya sürüm performansının regresyona yansıtılabileceği anlamına gelir.

    • LOW-BATTERY

      Pil azaldığında cihazlar genellikle kalan pilden tasarruf etmek için performansı düşürür (ör. büyük çekirdekleri devre dışı bırakarak). Bu durum, cihazlar fişe fişe takılı olsa bile gerçekleşir. Bu hatayı yalnızca uygulamanın profilini düşük performansla kasten kaldırıyorsanız gizleyin.

    • EMULATOR

      EMULATOR hatası, karşılaştırmanın gerçek kullanıcı cihazlarını temsil etmeyen bir emülatörde çalıştığını gösterir. Emülatör karşılaştırma iyileştirmeleri gerçek kullanıcı deneyimine taşınmayabilir veya gerçek cihaz performansını düşürebilir. Karşılaştırmak için bunun yerine fiziksel bir cihaz kullanmalısınız. Bu hatayı çok dikkatli bir şekilde bastırın.

    • NOT-PROFILEABLE

      $packageName hedef paketi <profileable shell=true> olmadan çalışıyor. Macrobenchmark'ın, hedef işlemden uygulamada veya kitaplıklarda tanımlanan sistem izleme bölümleri gibi ayrıntılı izleme bilgilerini yakalaması için Android 10 ve 11'de Profillenebilir gereklidir. Bu hatayı çok dikkatli bir şekilde bastırın.

    • METHOD-TRACING-ENABLED

      Karşılaştırılmakta olan uygulama için Macrobenchmark çalıştırmasında yöntem izleme etkindir. Bu durum sanal makinenin normalden daha yavaş çalışmasına neden olur. Bu nedenle izleme dosyalarındaki metrikleri yalnızca göreceli olarak değerlendirin (örneğin, ilk çalıştırmanın ikinci çalıştırmaya göre ne kadar hızlı olduğunu karşılaştırabilirsiniz). Bu hatanın engellenmesi, farklı yöntem izleme seçeneklerine sahip derlemelere ait karşılaştırmaları karşılaştırırsanız yanlış sonuçlara yol açabilir.

  • Varsayılan ayar: Boş liste

ekTestÇıkışDir

JSON karşılaştırma raporlarının ve profil oluşturma sonuçlarının cihaza kaydedileceği yeri yapılandırır.

  • Bağımsız değişken türü: yol dizesi
  • Varsayılan ayar: APK'nın harici dizini