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, "Trace Java Yöntemleri"ne eş değerdir ve StackSampling "Örnek Java Yöntemleri"ne eşdeğerdir bu belgede tanımlandığı şekildedir.

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.

Yöntem İzleme

Yöntem izleme, kodunuzu optimize etmeye çalışırken diğerlerine göre daha uzun süren yöntemleri belirlemenize yardımcı olabilir. Şunları yapabilirsiniz: performans üzerinde en fazla etkiye sahip yöntemleri optimize etmeye odaklanın.

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. Örnekleme sıklığını kontrol edebilirsiniz ve enstrümantasyon kullanılarak örnekleme süresi bağımsız değişkenlerdir.

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.

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 bir profil oluşturma dosyasını yakalamıyor. Zamanlama ve yapılandırma ile ilgili bilgiler ayırmalar hâlâ ölçülmektedir.

ziyaret edin.