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:
- Düzenle'yi tıklayıp düzenlemek istediğiniz yapılandırmayı seçerek çalıştırma yapılandırmasını düzenleyin.
- 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.
- simgesini tıklayın ve gerekli 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 listener
instrumentation 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
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Macrobenchmark enstrümantasyon bağımsız değişkenleri
- Mikro karşılaştırma profili oluşturma
- Temel profiller oluşturma {:#creating-profile-rules}