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:
- Düzenle'yi ve ardından yapılandırmayı tıklayarak çalıştırma yapılandırmasını düzenleyin.
- Araç bağımsız değişkenlerini, Araç bağımsız değişkenleri tarafından Diğer'i tıklayarak düzenleyin.
- Araç Ekstra Parametreleri altında Add'i (Ekle) tıklayarak 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ındadebuggable=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çindebuggable=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
Sizin için önerilenler
- Not: Bağlantı metni JavaScript kapalıyken gösterilir
- Mikro Karşılaştırma Enstrümantasyonu Bağımsız Değişkenleri
- Temel Profiller Oluşturma
- JankStats Kitaplığı