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

Aşağıdaki araç bağımsız değişkenleriyle kitaplığın davranışını 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 öğesine ekleyin:

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

Android Studio'dan karşılaştırmaları çalıştırırken araç bağımsız değişkenlerini de ayarlayabilirsiniz. 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, Araç bağımsız değişkenleri tarafından Diğer'i tıklayarak düzenleyin.
    araç bağımsız değişkenlerini düzenleme
    Şekil 2. Araç bağımsız değişkenlerini düzenleyin.
  3. Araç Ekstra Parametreleri altında Add'i (Ekle) tıklayarak gerekli araç bağımsız değişkenini ekleyin.
    gerekli araç bağımsız değişkenini ekleyin
    Şekil 3. Gerekli araç bağımsız değişkenini ekleyin.

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

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

androidx.benchmark.compilation.enabled

Karşılaştırmanın her iterasyonu arasında derlemeyi devre dışı bırakmanıza olanak tanır. Varsayılan olarak hedef uygulama, measureRepeated'e geçirilen CompilationMode ile uyumlu olması için her karşılaştırmanın arasında yeniden yüklenir ve yeniden derlenir. Bu özelliği devre dışı bırakmak, örneğin test paketini çalıştırmadan önce hedef uygulamayı bir kez tamamen derlemek ve tüm karşılaştırmaları bu tam olarak derlenmiş hedefle çalıştırmak isterseniz hem yeniden yükleme hem de derlemeyi atlamanıza olanak tanır.

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

androidx.benchmark.ryRunMode.enable

Düzgün çalışıp çalışmadıklarını doğrulamak için karşılaştırmaları tek bir döngüde çalıştırmanızı sağlar. Bu özelliği, doğrulama kapsamında düzenli testlerde kullanabilirsiniz.

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

androidx.benchmark.enabledRules

Filtreleme işleminin yalnızca bir test türünde çalıştırılmasına izin verir: Referans Profil oluşturma veya Makrobenchmark testi. Virgülle ayrılmış listeler de desteklenir.

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

androidx.benchmark.junit4.SideEffectRunListener

Karşılaştırma çalışırken alakasız arka plan çalışması 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çları 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 değer: belirtilmedi

androidx.benchmark.perfettoSdkTracking.enable

Jetpack Compose bileşim izleme gibi androidx.tracing.perfetto izleme noktalarını etkinleştirir. İzleme noktalarının etkinleştirilmesi, hedef işlemi uyandırdığından yalnızca StartupMode.COLD kullanılmadığında bu durum etkili olur.

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

androidx.benchmark.profiling.mode

Karşılaştırmalar çalıştırılırken izleme dosyalarının yakalanmasına izin verir. Kullanılabilen seçenekler, Mikrobenchmark kitaplığındakilerle aynıdır. Daha fazla bilgi için Mikro Karşılaştırma Profili Oluşturma bölümündeki açıklamalara bakın.

  • Bağımsız değişken türü: dize
  • Mevcut seçenekler:
    • MethodTracing
    • StackSampling
    • None
  • Varsayılan değer: 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 değer: 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ü: dize listesi
  • Mevcut seçenekler:

    • DEBUGGABLE

      DEBUGGABLE hatası, hedef paketin manifest dosyasında debuggable=true ile çalıştığını gösterir. Bu durum, hata ayıklama özelliklerini desteklemek için çalışma zamanı performansını önemli ölçüde azaltır. Bu hatayı önlemek için debuggable=false ile karşılaştırmalar yapın. Hata ayıklaması yapılabilir bağımsız değişken, yürütme hızını, karşılaştırma iyileştirmelerinin gerçek kullanıcının deneyimine aktarılmayabileceği veya sürüm performansının geri çekilebileceği şekilde etkiler.

    • LOW-BATTERY

      Pil azaldığında, cihazlar kalan pil gücünden tasarruf etmek için genellikle (örneğin, büyük çekirdekleri devre dışı bırakarak) performansı düşürür. Bu işlem, cihazlar fişe takılıyken bile gerçekleşir. Bu hatayı, yalnızca uygulamanın profilini düşük performansla kasıtlı olarak 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ı belirtir. Emülatör karşılaştırma iyileştirmeleri, gerçek kullanıcı deneyimine yansıtılmayabilir veya gerçek cihaz performansında düşüşe neden olabilir. Karşılaştırma 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. Profileable, Android 10 ve 11'de Macrobenchmark'ın hedef işlemden uygulamadaki veya kitaplıklarda tanımlanan sistem izleme bölümleri gibi ayrıntılı iz bilgilerini yakalayabilmesi için gereklidir. Bu hatayı çok dikkatli bir şekilde bastırın.

    • METHOD-TRACING-ENABLED

      Karşılaştırılmakta olan uygulama için Makrobenchmark çalıştırmasında yöntem izleme etkin. Bu durum, sanal makinenin normalden daha yavaş çalışmasına neden olur. Bu nedenle, izleme dosyalarındaki metrikleri yalnızca göreli terimlerle değerlendirin (ör. ilk çalıştırma ile ikinci çalıştırma arasındaki hızı karşılaştırma). Bu hatanın engellenmesi, farklı yöntem izleme seçeneklerine sahip derlemelerin karşılaştırmalarını karşılaştırırsanız yanlış sonuçlarla sonuçlanabilir.

  • Varsayılan değer: boş liste

ekTestÇıkışDiri

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

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