Kavramlar ve Jetpack Compose uygulaması
Karşılaştırma, uygulamanızın performansını incelemenin ve izlemenin bir yoludur. Performans sorunlarını analiz edip hata ayıklamak ve son değişikliklerde gerileme yaşamadığınızdan emin olmak için düzenli olarak karşılaştırmalar yapabilirsiniz.
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 olanak tanır ve uygulamanın gerçek başlatma veya kaydırma performansını doğrudan ölçmek için uygulamanızı başlatıp durdurmanızı sağlar.
Macrobenchmark kitaplığı, testlerinizle oluşturulan bir test uygulamasından etkinlikleri ekler ve sonuçları harici olarak izler. Bu nedenle, karşılaştırmaları yazarken uygulama kodunuzu doğrudan çağırmaz, bunun yerine uygulamanızda kullanıcı olarak gezinirsiniz.
Mikro karşılaştırma
Microbenchmark kitaplığı, uygulama kodunu doğrudan bir döngüde karşılaştırmanıza olanak tanır. Bu, en iyi performansın değerlendirildiği CPU çalışmasını ölçmek için tasarlanmıştır. Örneğin, iç döngü veya belirli bir sıcak işlevle görebileceğiniz, ısınmış Just in Time (JIT) ve önbelleğe alınmış disk erişimleri gibi. Kitaplık yalnızca doğrudan tek başına çağırabileceğiniz kodu ölçebilir.
Aşağıdaki durumlarda karşılaştırma yapmak faydalı olabilir:
- Uygulamanızın karmaşık bir veri yapısını işlemesi gerektiğinde
- Uygulamanızın, uygulama çalışırken birden çok kez çağırdığı, yoğun hesaplama gerektiren belirli bir algoritması olduğunda.
Kullanıcı arayüzünüzün bölümlerini de ölçebilirsiniz. Örneğin, RecyclerView öğe bağlamanın maliyetini, bir düzeni şişirmenin ne kadar sürdüğünü veya View sınıfınızın düzen ve ölçüm geçişinin performansını ölçebilirsiniz.
Ancak karşılaştırılan destek kayıtlarının genel kullanıcı deneyimine nasıl katkıda bulunduğunu ölçemezsiniz. Bazı durumlarda karşılaştırma, kare düşmesi veya uygulama başlatma süresi gibi bir darboğazı iyileştirip iyileştirmediğinizi göstermez. Bu nedenle, öncelikle Android Profiler ile bu darboğazları tespit etmek çok önemlidir. İncelemek ve optimize etmek istediğiniz kodu bulduktan sonra, karşılaştırmalı döngü tekrar tekrar çalıştırılarak daha az gürültülü sonuçlar elde edilebilir. Bu sayede tek bir iyileştirme alanına odaklanabilirsiniz.
Microbenchmark kitaplığı, sistemin geneli hakkında değil, yalnızca uygulamanız hakkında bilgi verir. Bu nedenle, genel sistem sorunlarıyla ilgili olabilecek durumların değil, uygulamaya özgü durumların performansını analiz etmek için en uygun araçtır.
Karşılaştırma kitaplığı karşılaştırması
| Macrobenchmark | Mikro karşılaştırma | |
|---|---|---|
| İşlev | Etkinlik başlatma veya liste kaydırma gibi üst düzey giriş noktalarını ya da etkileşimleri ölçün. | İşlevleri tek tek ölçün. |
| Kapsam | Uygulamanın tamamının işlem dışı testi. | CPU çalışmasının işlem içi testi. |
| Hız | Orta düzeyde iterasyon hızı. Bir dakikayı aşabilir. | Hızlı iterasyon hızı. Genellikle 10 saniyeden kısa sürer. |
| İzleme | Sonuçlar, sistem izleriyle birlikte sunulur. | Sonuçlar varsayılan olarak minimum sistem izi ve yöntem izi içerir. |
Sizin için önerilenler
- Not: JavaScript devre dışı bırakıldığında bağlantı metni gösterilir.
- Temel profiller oluşturma {:#creating-profile-rules}
- JankStats Kitaplığı
- Uygulama performansını ölçmeye genel bakış