Karşılaştırma, uygulamanızın performansını denetlemenin ve izlemenin bir yoludur. Performans sorunlarını analiz edip hatalarını ayıklamak ve son değişikliklerde regresyonlara yer vermediğinizden emin olmak için düzenli olarak karşılaştırmalar çalıştırabilirsiniz.
Android, uygulamanızdaki farklı durumları analiz edip test etmek için iki karşılaştırma kitaplığı ve yaklaşım sunar: Makrobenchmark ve Microbenchmark.
MakroKarşılaştırma
Makrobenchmark kitaplığı, başlatma, kullanıcı arayüzü ile 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 etmenizi ve gerçek uygulama başlangıcını veya kaydırmayı doğrudan ölçmek için uygulamanızı başlatıp durdurmanızı sağlar.
Makrobenchmark kitaplığı, testlerinizle oluşturulan bir test uygulamasından alınan etkinlikleri ekler ve sonuçları harici olarak izler. Bu nedenle, karşılaştırmaları yazarken uygulama kodunu doğrudan çağırmaz, bunun yerine uygulamanızın içinde bir kullanıcı olarak gezinirsiniz.
Mikro karşılaştırma
Microbenchmark kitaplığı, uygulama kodunu doğrudan bir döngü içinde karşılaştırmanıza olanak tanır. Bu özellik, bir iç döngü veya belirli bir çalışır durumda işlevle görebileceğiniz en iyi durumları (ör. Tam Zamanında Hazırlanmış (JIT) ve önbelleğe alınan disk erişimleri gibi) değerlendiren CPU çalışmalarını ölçmek için tasarlanmıştır. Kitaplık yalnızca doğrudan tek başına çağırabileceğiniz kodu ölçebilir.
Uygulamanızın karmaşık bir veri yapısını işlemesi veya çalışma sırasında birden çok kez çağrılan, işlem ağırlıklı belirli bir algoritmaya sahip olması gerekiyorsa bunlar, karşılaştırma için iyi örnekler olabilir. Kullanıcı arayüzünüzün bazı bölümlerini de
ölçebilirsiniz. Örneğin, RecyclerView
öğe bağlamasının maliyetini, bir düzeni şişirmenin ne kadar sürdüğünü veya performans açısından View
sınıfınızın düzen ve ölçüm geçişinin ne kadar zor olduğunu ö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, olumsuzluk veya uygulama başlatma süresi gibi bir performans sorununu iyileştirip iyileştirmediğinizi söylemez. Bu nedenle, önce bu performans sorunlarını Android Profiler ile 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ışabilir ve böylece tek bir iyileştirme alanına odaklanabilirsiniz.
Mikrobenchmark kitaplığı, sistemin geneli hakkında değil, yalnızca uygulamanızla ilgili bilgileri raporlar. Bu nedenle, performansı genel sistem sorunlarıyla ilgili olanlar yerine, uygulamaya özgü durumları analiz etmek en iyi yöntemdir.
Karşılaştırma kitaplığı karşılaştırması
MakroKarşılaştırma | Mikro karşılaştırma | |
---|---|---|
API sürümü | 23 ve üzeri | 14 ve üzeri |
İşlev | Etkinlik başlatma ya da bir listeyi kaydırma gibi üst düzey giriş noktalarını veya etkileşimleri ölçün. | İşlevleri ayrı ayrı ölçün. |
Kapsam | Tam uygulamanın işlem dışı testi. | CPU işi uygulama testi. |
Hız | Orta iterasyon/yineleme hızı. Bu süre bir dakikayı aşabilir. | Yüksek yineleme hızı. Genellikle 10 saniyeden kısa sürer. |
İzleme | Sonuçlar profil oluşturma izlerini içerir. | İsteğe bağlı yöntem örnekleme ve izleme. |
Sizin için önerilenler
- Not: Bağlantı metni JavaScript kapalıyken görüntülenir
- Temel Profiller Oluşturma {:#creating-profile-rules}
- JankStats Kitaplığı
- Uygulama performansını ölçmeye genel bakış