Uygulamanızı karşılaştırma

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.