Mikro karşılaştırma enstrümantasyonu bağımsız değişkenleri

Microbenchmark'ın davranışını aşağıdaki enstrümasyon bağımsız değişkenleriyle yapılandırın. Bunları Gradle yapılandırmanıza ekleyebilir veya enstrümantasyonu komut satırından çalıştırırken doğrudan uygulayabilirsiniz. Bu bağımsız değişkenleri tüm Android Studio ve komut satırı test çalıştırmaları için ayarlamak üzere testInstrumentationRunnerArguments dosyasına ekleyin:

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

Android Studio'dan karşılaştırmaları çalıştırırken de enstrümasyon bağımsız değişkenlerini ayarlayabilirsiniz. Bağımsız değişkenleri değiştirmek için aşağıdakileri yapın:

  1. Düzenle'yi tıklayıp düzenlemek istediğiniz yapılandırmayı seçerek çalıştırma yapılandırmasını düzenleyin.
    Şekil 1. Çalıştırma yapılandırmasını düzenleyin.
  2. Enstrümantasyon bağımsız değişkenleri alanının yanındaki simgesini tıklayarak enstrümantasyon bağımsız değişkenlerini düzenleyin.
    Şekil 2. Enstrümantasyon bağımsız değişkenini düzenleyin.
  3. simgesini tıklayın ve gerekli enstrümantasyon bağımsız değişkenini ekleyin.
    Şekil 3. Enstrümantasyon bağımsız değişkenini ekleyin.

Karşılaştırmayı komut satırından çalıştırıyorsanız -P android.testInstrumentationRunnerArguments.[name of the argument] kullanın:

./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling

am instrument komutunu doğrudan çağırıyorsanız (CI test ortamlarında bu durum söz konusu olabilir) bağımsız değişkeni -e ile am instrument'e iletin:

adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner

CI'de karşılaştırmaları yapılandırma hakkında daha fazla bilgi için CI'de karşılaştırma başlıklı makaleyi inceleyin.

additionalTestOutputDir

JSON karşılaştırma raporlarının ve profil oluşturma sonuçlarının cihazda nereye kaydedileceğini yapılandırır.

  • Bağımsız değişken türü: dosya yolu dizesi
  • Varsayılan değer: test APK'sının harici dizini

androidx.benchmark.dryRunMode.enable

Düzgün çalıştıklarını doğrulamak için tek döngüde karşılaştırmalar çalıştırmanıza olanak tanır.

Bunun anlamı şudur:

  • Yapılandırma hataları zorunlu kılınmaz (örneğin, emülatörlerde doğruluk testlerini düzenli olarak çalıştırmayı kolaylaştırmak için)
  • Karşılaştırma, ısınma olmadan yalnızca tek bir döngü çalıştırır
  • Çalışma süresini azaltmak için ölçümler ve izler yakalanmaz

Bu, derleme ve ölçüm doğruluğu yerine test verimini ve karşılaştırma mantığını doğrulamak için optimizasyon yapar.

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

androidx.benchmark.iterations

Tutarlı bir çalışma miktarı elde etmenize yardımcı olmak için zamana dayalı hedef iterasyon sayılarını geçersiz kılar. Bu, genellikle yalnızca farklı uygulamalar veya çalıştırmalar karşılaştırılırken bir profil oluşturma izlemesinde tutarlı miktarda çalışmanın yapılmasını sağlamak için etkinleştirilen profil oluşturma ile yararlıdır. Diğer senaryolarda bu durum, ölçümlerin doğruluğunu veya kararlılığını düşürebilir.

  • Bağımsız değişken türü: tam sayı
  • Varsayılan olarak: belirtilmemiş

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 listenerinstrumentation bağımsız değişkeni 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 olarak: belirtilmemiş

androidx.benchmark.output.enable

Sonuç JSON dosyasının harici depolamaya yazılmasını sağlar.

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

androidx.benchmark.profiling.mode

Karşılaştırmalar çalışırken izleme dosyalarının yakalanmasına olanak tanır. Mevcut seçenekler için Mikro karşılaştırma profili oluşturma bölümüne bakın.

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

androidx.benchmark.suppressErrors

Uyarıya dönüştürülecek hataların virgülle ayrılmış listesini kabul eder.

  • Bağımsız değişken türü: dize listesi
  • Mevcut seçenekler:
    • DEBUGGABLE
    • LOW-BATTERY
    • EMULATOR
    • CODE-COVERAGE
    • UNLOCKED
    • SIMPLEPERF
    • ACTIVITY-MISSING
  • Varsayılan değer: Boş liste

androidx.benchmark.startupMode.enable (Kullanımdan kaldırıldı)

Başlangıç sırasında karşılaştırma kodunu desteklemek için döngü davranışını yeniden yapılandırır. Karşılaştırmalar, 10 ölçüm için ısınma döngüsü olmadan yürütülür. Mikro karşılaştırmalarda yükü en aza indirmek için döngü ortalaması devre dışı bırakılır.

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