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şlatma veya kaydırma işlemlerini doğrudan ölçebilirsiniz.
Macrobenchmark kitaplığı, etkinlikleri yerleştirir ve sonuçları, testlerinizle oluşturulan bir test uygulamasından harici olarak izler. Bu nedenle, karşılaştırma testlerini 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ınır. Kitaplık yalnızca doğrudan ve bağımsız olarak çağırabileceğiniz kodu ölçebilir.
Uygulamanızın karmaşık bir veri yapısını işlemesi veya uygulama çalıştırılırken birden çok kez çağrılan belirli bir hesaplama ağırlıklı algoritması olması durumunda, bu durumlar karşılaştırma için uygun 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 ve ölçü geçişinin performans açısından ne kadar zorlu olduğunu ölçebilirsiniz.
Ancak karşılaştırma yapılan durumların genel kullanıcı deneyimine nasıl katkıda bulunduğunu ölçemezsiniz. Bazı senaryolarda karşılaştırma, takılma veya uygulama başlatma süresi gibi bir darboğazı 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 hızlı ve kolay bir şekilde 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 yöntemdir.
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 yineleme hızı. Bir dakikayı geçebilir. | Hızlı yineleme 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ış