Varsayılan olarak, Microbenchmarks size zamanlama ve ayırmalarını ifade eder. Ölçülen değişikliklerin neden yüksek olduğunu araştırmak yavaş çalışıyorsa CPU profil aracı ile karşılaştırmaları çalıştırabilirsiniz ekli.
Profil oluşturucu yapılandırmasını seçmek için araçları ekleyin.
şunlardan birini içeren androidx.benchmark.profiling.mode
adlı koşucu bağımsız değişkeni
MethodTracing
, StackSampling
veya
None
bağımsız değişkenini görürsünüz.
Daha fazla
seçenekler hakkında bilgi edinmek için Kayıt yapılandırması seçme başlıklı makaleye göz atın.
MethodTracing
, "Java Yöntemlerini İzleme"nin, StackSampling
ise bu dokümanda tanımlandığı şekilde "Java Yöntemlerini Örnekleme"nin eşdeğeridir.
Eski
android { defaultConfig { // must be one of: 'None', 'StackSampling', or 'MethodTracing' testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"]= 'StackSampling' } }
Kotlin
android { defaultConfig { // must be one of: 'None', 'StackSampling', or 'MethodTracing' testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"] = "StackSampling" } }
Bir karşılaştırma profilini oluşturduğunuzda .trace
çıkış dosyası, tablodaki ana makineye kopyalanır.
JSON sonuçlarının yanında dizin. Profil oluşturma sonuçlarını incelemek için
Android Studio'da CPU Profiler'a giderek File (Dosya) > Aç. Şu konu hakkında daha fazla bilgi edinmek için:
izleri okuma ve anlama hakkında bilgi için İzleri İnceleme başlıklı makaleyi inceleyin.
MethodTracing
Yöntem izleme, kodunuzu optimize etmeye çalışırken diğerlerine göre daha uzun süren yöntemleri belirlemenize yardımcı olabilir. Ardından, performansı en fazla etkileyen yöntemleri optimize etmeye odaklanabilirsiniz.
Profil oluşturma, kod ölçümünden sonra sırayla gerçekleştiğinden testiniz her iki sonucu da verir. ve doğru zamanlama ve profil çıkarma sonuçları sağlar.
Yığın Örnekleme
Numune takibi de performansın ek yükünü ifade eder. Ancak, uygulamanız bir yöntem girerse bir çağrı yığını yakalandıktan ve yöntem bir sonraki yöntem çağrısı günlüğe kaydedilmez. Yöntemleri düzgün şekilde takip etmek için yaşam döngüleri varsa örnek izleme yerine yöntem izleme kullanın.
Yığın örneklemeyle, karşılaştırma örnekleri ısınma tamamlandıktan sonra belirir. Enstrümantasyon bağımsız değişkenlerini kullanarak örnekleme sıklığını ve örnekleme süresini kontrol edebilirsiniz.
Android 10 (API 29) ve sonraki sürümlerde yığın örnekleme, örnekleme yapmak için Simpleperf'i kullanır.
uygulama çağrı yığınlarını (C++ kodu dahil) kullanır. Android 9 (API 28) ve önceki sürümlerde, yığın örneklerini yakalamak için Debug.startMethodTracingSampling
kullanılır.
Başka bir araç ekleyerek bu profil oluşturma modunu yapılandırabilirsiniz. bağımsız değişkenler:
androidx.benchmark.profiling.sampleFrequency
- Saniyede yakalanacak yığın örneği sayısı.
- Bağımsız değişken türü: tam sayı
- Varsayılan olarak saniyede 1.000 örnek ayarlanır.
androidx.benchmark.profiling.sampleDurationSeconds
- Karşılaştırmanın çalışma süresi.
- Bağımsız değişken türü: tam sayı
- Varsayılan olarak 5 saniye değerine ayarlanır.
Yok
Bu bağımsız değişken, profil oluşturma dosyası yakalamaz. Zamanlama ve seçimle ilgili bilgiler ayırmalar yine de ölçülmektedir.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Mikro Karşılaştırma Aracı Bağımsız Değişkenleri
- Sürekli Entegrasyon'da karşılaştırmalar çalıştırma