Mikro Karşılaştırma Profili Oluşturma

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) > . Ş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.