Aşağıdaki enstrümantasyon bağımsız değişkenleriyle mikro karşılaştırmanın davranışını yapılandırın. Bunları Gradle yapılandırmanıza ekleyebilir veya komut satırından enstrümantasyon ç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ırma testlerini çalıştırırken enstrümantasyon bağımsız değişkenlerini de 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.
1. şekil. Çalıştırma yapılandırmasını düzenleyin. - Instrumentation arguments (Enstrümantasyon bağımsız değişkenleri) alanının yanındaki
Şekil 2. Enstrümantasyon bağımsız değişkenini düzenleyin.
simgesini tıklayarak enstrümantasyon bağımsız değişkenlerini düzenleyin.
3.şekil Enstrümantasyon bağımsız değişkenini ekleyin.
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
Bir enstrüman komutunu doğrudan çağırıyorsanız (bu durum CI test ortamlarında geçerli olabilir) am instrument
bağımsız değişkenini -e
ile iletin:
adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner
CI'da karşılaştırmaları yapılandırma hakkında daha fazla bilgi için bkz. CI'da karşılaştırma
androidx.benchmark.cpuEventCounter.enable (deneysel)
androidx.benchmark.cupEventCounter.events
içinde belirtilen CPU etkinliklerini sayar.
Kök erişimi gerektirir.
- Bağımsız değişken türü: boole
- Varsayılan değer: false
androidx.benchmark.cpuEventCounter.events (deneysel)
Hangi CPU etkinliklerinin sayılacağını belirtir. Bu bağımsız değişkeni kullanmak için androidx.benchmark.cpuEventCounter.enable
, true
olarak ayarlanmalıdır.
- Bağımsız değişken türü: Virgülle ayrılmış dize listesi
- Mevcut seçenekler:
Instructions
CPUCycles
L1DReferences
L1DMisses
BranchInstructions
BranchMisses
L1IReferences
L1IMisses
- Varsayılan olarak:
Instructions
,CpuCycles
,BranchMisses
androidx.benchmark.dryRunMode.enable
Düzgün çalıştıklarını doğrulamak için tek döngüde karşılaştırma yapmanıza olanak tanır.
Bunun anlamı şudur:
- Yapılandırma hataları zorunlu kılınmaz (örneğin, emülatörlerde normal doğruluk testleriyle ç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 izlemeler yakalanmaz.
Bu, derleme ve ölçüm doğruluğundan ziyade test verimliliğini ve karşılaştırma ölçütü mantığını doğrulamayı optimize eder.
- Bağımsız değişken türü: boole
- Varsayılan değer:
false
androidx.benchmark.killExistingPerfettoRecordings
Benchmark, varsayılan olarak yeni bir izleme başlatırken girişimi azaltmak için mevcut Perfetto (Sistem İzleme) kayıtlarını sonlandırır. Bu davranışı devre dışı bırakmak için false
değerini iletin.
- Bağımsız değişken türü: boole
- Varsayılan değer:
true
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 değer:
true
androidx.benchmark.profiling.mode
Karşılaştırma testleri çalıştırılırken izleme dosyalarının yakalanmasına izin verir. Kullanılabilir seçenekler için Profile a Microbenchmark (Mikro Karşılaştırma Testi Profilini Oluşturma) başlıklı makaleye bakın.
Bazı Android OS sürümlerinde, sonraki ölçümler etkilenmeden yöntem izlemenin desteklenmediğini unutmayın. Microbenchmark bunu önlemek için bir istisna oluşturur. Bu nedenle, yalnızca güvenli olduğunda yöntem izlemelerini yakalamak için varsayılan bağımsız değişkeni kullanın. 316174880 numaralı soruna bakın.
- Bağımsız değişken türü: dize
- Mevcut seçenekler:
MethodTracing
StackSampling
None
- Varsayılan: Yalnızca cihaz ölçümleri etkilemeden yapabiliyorsa yöntem izlemeyi yakalayan
MethodTracing
'nin güvenli sürümü.
androidx.benchmark.suppressErrors
Uyarılara 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 olarak: boş bir liste
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 olarak: Test APK'sının harici dizini
işleyici
Karşılaştırma çalışırken alakasız arka plan işlemleri yürütülürse tutarsız karşılaştırma sonuçları alabilirsiniz.
Karşılaştırma sırasında arka planda çalışmayı devre dışı bırakmak için listener
enstrümantasyon 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 olarak: belirtilmemiş
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}