Kavramlar ve Jetpack Compose uygulaması
Karşılaştırma, uygulamanızın performansını incelemenin ve izlemenin bir yoludur. Performans sorunlarını analiz etmek ve hatalarını ayıklamak için düzenli olarak karşılaştırma yapabilir, son değişikliklerde gerileme yaşamadığınızdan emin olabilirsiniz.
Android, uygulamanızdaki farklı durumları analiz etmek ve test etmek için iki karşılaştırma kitaplığı ve yaklaşım sunar: Macrobenchmark ve Microbenchmark.
Macrobenchmark
Macrobenchmark kitaplığı, başlatma, kullanıcı arayüzüyle etkileşim ve animasyonlar gibi daha büyük son kullanıcı etkileşimlerini ölçer. Kitaplık, test ettiğiniz performans ortamı üzerinde doğrudan kontrol sağlar. Derlemeyi kontrol etmenize, uygulamanızı başlatıp durdurarak gerçek uygulama başlatma veya kaydırma işlemlerini doğrudan ölçmenize olanak tanır.
Macrobenchmark kitaplığı, etkinlikleri yerleştirir ve sonuçları testlerinizle oluşturulan bir test uygulamasından harici olarak izler. Bu nedenle, karşılaştırma ölçütlerini yazarken uygulama kodunuzu doğrudan çağırmaz, bunun yerine uygulamanızda kullanıcı olarak gezinirsiniz.
Mikro karşılaştırma testi
Microbenchmark kitaplığı, uygulama kodunu doğrudan bir döngüde karşılaştırmanıza olanak tanır. Bu, en iyi durumdaki performansı değerlendiren CPU çalışmalarını ölçmek için tasarlanmıştır. Örneğin, iç döngü veya belirli bir sıcak işlevle görebileceğiniz, önceden ısıtılmış anında derleme (JIT) ve diske erişimler önbelleğe alınır. Kitaplık yalnızca doğrudan ve bağımsız olarak çağırabileceğiniz kodu ölçebilir.
Karşılaştırma için uygun olan durumlar şunlardır:
- Uygulamanızın karmaşık bir veri yapısını işlemesi gerektiğinde
- Uygulamanız, uygulama çalışırken birden çok kez çağırdığı belirli bir hesaplama açısından yoğun algoritma içerdiğinde.
Kullanıcı arayüzünüzün bölümlerini de ölçebilirsiniz. Örneğin, RecyclerView öğe bağlamanın maliyetini, bir düzenin ne kadar sürede şişirildiğini veya View sınıfınızın düzen ve ölçü geçişinin performansını ölçebilirsiniz.
Ancak, karşılaştırılan servis taleplerinin genel kullanıcı deneyimine nasıl katkıda bulunduğunu ölçemezsiniz. Bazı senaryolarda karşılaştırma, bırakılan kareler veya uygulama başlatma süresi gibi bir performans sorununu iyileştirip iyileştirmediğinizi göstermez. Bu nedenle, Android Profiler ile önce bu darboğazları belirlemek çok önemlidir. İncelemek ve optimize etmek istediğiniz kodu bulduktan sonra, karşılaştırmalı döngü daha az gürültülü sonuçlar oluşturmak için tekrar tekrar çalıştırılabilir. Bu sayede iyileştirilmesi gereken bir alana odaklanabilirsiniz.
Microbenchmark kitaplığı yalnızca uygulamanızla ilgili bilgileri raporlar, sistemin geneliyle ilgili bilgileri raporlamaz. Bu nedenle, genel sistem sorunlarıyla ilgili olabilecek durumların değil, uygulamaya özgü durumların performansını analiz etmek için en iyi seçenektir.
Karşılaştırmalı değerlendirme kitaplığı
| Macrobenchmark | Mikro karşılaştırma testi | |
|---|---|---|
| İşlev | Etkinlik başlatma veya listede kaydırma gibi üst düzey giriş noktalarını ya da etkileşimleri ölçün. | Tek tek işlevleri ölçün. |
| Kapsam | Tam uygulamanın işlem dışı testi. | CPU çalışmasının işlem içi testi. |
| Hız | Orta iterasyon hızı. Bir dakikayı geçebilir. | Hızlı iterasyon hızı. Genellikle 10 saniyeden kısa sürer. |
| İzleme | Sonuçlar sistem izleriyle birlikte gelir. | Sonuçlar, varsayılan olarak minimum sistem izi ve yöntem iziyle birlikte gelir. |
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir.
- Temel profiller oluşturma {:#creating-profile-rules}
- JankStats Kitaplığı
- Uygulama performansını ölçmeye genel bakış