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 olanak tanır. Ayrıca, uygulamanızı başlatıp durdurarak gerçek uygulama başlangıcını veya kaydırmayı doğrudan ölçmenizi sağlar.
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 disk erişimleri önbelleğe alınmıştır. Kitaplık yalnızca doğrudan ve bağımsız olarak çağırabileceğiniz kodu ölçebilir.
Aşağıdaki durumlarda karşılaştırma yapmak iyi bir fikirdir: * Uygulamanızın karmaşık bir veri yapısını işlemesi gerektiğinde. * Uygulamanız, uygulama çalıştırılırken birden çok kez çağrılan belirli bir hesaplama ağırlıklı algoritmaya sahip 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üzenin şişirilmesinin ne kadar sürdüğünü 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 durumların 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, öncelikle Android Profiler ile bu darboğazları belirlemek çok önemlidir. İncelemek ve optimize etmek istediğiniz kodu bulduktan sonra, daha az gürültülü sonuçlar oluşturmak için karşılaştırmalı döngü 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 | |
|---|---|---|
| API sürümü | 23 ve sonraki sürümler | 14 ve sonraki sürümler |
| İş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, profil oluşturma izleriyle birlikte gelir. | İsteğe bağlı yöntem örnekleme ve izleme. |
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ış