Karşılaştırmalı test, uygulamanızın performansını incelemenin ve izlemenin bir yoludur. Performans sorunlarını analiz etmek ve hata ayıklamak için düzenli olarak karşılaştırmalı testler çalıştırabilir, ayrıca son değişikliklerde gerileme olmamasına yardımcı olabilirsiniz.
Android, uygulamanızdaki farklı durumları analiz etmek ve test etmek için iki karşılaştırma kitaplığı ve yaklaşımı sunar: Makro Karşılaştırma ve Mikro Karşılaştırma.
Makro karşılaştırma
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 ve uygulamanızı başlatıp durdurarak uygulamanın gerçek başlangıç veya kaydırma süresini doğrudan ölçmenize olanak tanır.
Macrobenchmark kitaplığı, etkinlikleri ekler ve testlerinizle derlenen bir test uygulamasından gelen sonuçları harici olarak izler. Bu nedenle, karşılaştırmaları yazarken uygulamanızın kodunu 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, bir iç döngüde veya belirli bir sıcak işlevde görebileceğiniz en iyi performansı (ör. ısıtılmış Just in Time (JIT) ve önbelleğe alınmış disk erişimleri) değerlendiren CPU çalışmasını ölçmek için tasarlanmıştır. Kitaplık yalnızca doğrudan çağırabileceğiniz kodu tek başına ölçebilir.
Uygulamanızın karmaşık bir veri yapısını işlemesi gerekiyorsa veya uygulama çalışırken birden fazla kez çağrılan belirli işlem ağırlıklı bir algoritmaya sahipse bunlar karşılaştırma için iyi durumlar olabilir. 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 oluşturma ve ölçme geçişinin performans açısından ne kadar talepkâr olduğunu ölçebilirsiniz.
Ancak karşılaştırma yapılan destek kayıtlarının genel kullanıcı deneyimine nasıl katkıda bulunduğunu ölçemezsiniz. Bazı durumlarda karşılaştırma, takılma veya uygulama başlatma süresi gibi bir darboğazın iyileştirilip iyileştirilemediğini size söylemez. Bu nedenle, bu darboğazları önce Android Profiler ile tespit etmek ç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 hızlı ve kolay bir şekilde tekrar tekrar çalıştırılabilir. Bu sayede, tek bir iyileştirme alanına odaklanabilirsiniz.
Microbenchmark kitaplığı yalnızca uygulamanızla ilgili bilgileri raporlar, sistem geneliyle ilgili bilgileri rapor etmez. Bu nedenle, genel sistem sorunlarıyla ilgili olabilecek durumların değil, uygulamaya özgü durumların performansını analiz etmek için en iyisidir.
Karşılaştırmalı değerlendirme kitaplığı
Makro karşılaştırma | Mikro Karşılaştırma | |
---|---|---|
API sürümü | 23 ve üzeri | 14 ve sonraki sürümler |
İşlev | Etkinlik başlatma veya listede kaydırma gibi üst seviye giriş noktalarını ya da etkileşimleri ölçün. | Bağımsız işlevleri ölçün. |
Kapsam | Uygulamanın tamamı için işlem dışı test. | CPU çalışmasının işlem içi testi. |
Hız | Orta düzeyde iterasyon hızı. Bu işlem bir dakikayı aşabilir. | Hızlı iterasyon hızı. Genellikle 10 saniyeden kısadır. |
İzleme | Sonuçlar, profil oluşturma izleriyle 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ış