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

Varsayılan olarak Mikrobenchmarks, yürütülen kodun zamanlaması ve ayırmaları hakkında bilgi verir. Ölçülen kodun neden yavaş çalıştığını araştırmak isterseniz karşılaştırmaları CPU profil aracı ekleyerek çalıştırabilirsiniz.

Profil oluşturucu yapılandırmasını seçmek için aşağıdaki snippet'te gösterildiği gibi MethodTracing, StackSampling veya None bağımsız değişkeninden biriyle androidx.benchmark.profiling.mode araç çalıştırıcı bağımsız değişkenini ekleyin.

Seçenekler hakkında daha fazla bilgi edinmek için Kayıt yapılandırması seçme bölümüne göz atın. MethodTracing, "Trace Java Yöntemleri"ne ve StackSampling bu belgede tanımlandığı şekilde "Sample Java Methods"a (Örnek Java Yöntemleri) eşdeğerdir.

Modern

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ırmanın profilini oluşturduğunuzda, dizindeki ana makineye JSON sonuçlarının yanında bir çıkış .trace dosyası kopyalanır. Profil oluşturma sonuçlarını Android Studio'daki CPU Profiler'da incelemek için Dosya > 'ı seçin. İzleri okuma ve anlama hakkında daha fazla bilgi edinmek için İzleri inceleme bölümüne bakın.

Yöntem İzleme

Yöntem izleme, diğerlerine göre daha uzun süren yöntemleri saptamanıza yardımcı olabileceğinden kodunuzu optimize etmeye çalışırken kullanışlıdır. Ardından, performans üzerinde en fazla etkiye sahip yöntemleri optimize etmeye odaklanabilirsiniz.

Profil oluşturma işlemi, kod ölçümünden sonra sırayla gerçekleşir. Bu nedenle testiniz hem doğru zamanlama hem de profil oluşturma sonuçları verir.

YığınÖrnekleme

Örnek izleme, yöntem izlemenin performans ek yükü olmadan pahalı yöntemlerin tanımlanmasına da yardımcı olabilir. Bununla birlikte, uygulamanız bir çağrı yığını yakalandıktan sonra bir yöntem girerse ve yöntem bir sonraki yakalamadan önce çıkarsa yöntem çağrısı günlüğe kaydedilmez. Yaşam döngüleri kısa olan yöntemleri doğru şekilde takip etmek için örnek izleme yerine yöntem izlemeyi kullanın.

Yığın örnekleme ile karşılaştırma örnekleri, ısınma tamamlandıktan sonra yığınları çağırır. Araç 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, C++ kodu da dahil olmak üzere uygulama çağrı yığınlarını örneklemek için Simpleperf yöntemini kullanır. Android 9 (API 28) ve önceki sürümlerde yığın örneklerini yakalamak için Debug.startMethodTracingSampling kullanılır.

Bu profil oluşturma modunu başka bir araç bağımsız değişkenleri ekleyerek yapılandırabilirsiniz:

  • 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ırma süresidir.
    • Bağımsız değişken türü: tam sayı
    • Varsayılan olarak 5 saniyedir.

Yok

Bu bağımsız değişken bir profil oluşturma dosyasını yakalamıyor. Zamanlama ve ayırmalarla ilgili bilgiler ölçülmeye devam ediyor.