Önemli karşılaştırmalar, uygulama başlatma veya açık kaynaklı Pokedex uygulamasında kaydırma gibi üst düzey uygulama kullanıcı yolculuklarını kapsayan bir dizi karşılaştırmadır.
- Başlangıç kahramanı karşılaştırmaları: Uygulamanın açılmasından içeriğin gösterilmesine kadar geçen süreyi izleme.
- Kaydırma kahramanı karşılaştırmaları: Resimlerle dolu bir tembel ızgaranın kaydırma performansını ölçme.
Test kurulumu
- Uygulama seçimi: Bu testleri açık kaynaklı Pokedex uygulamasını kullanarak gerçekleştirdik. Uygulamanın görünüme dayalı ve Compose'a dayalı sürümlerini karşılaştırdık. Uygulama, gerçek dünya senaryolarını temsil etmek için seçildi ve Compose ekibi tarafından geliştirilmedi.
- Donanım kurulumu: Android 12 (API 31) çalıştıran bir Pixel 3a'da kilitli CPU'lar ve GPU'lar ile karşılaştırma testleri yaptık. Bu cihaz, önemli karşılaştırmalar için standart performans referans noktası olarak kullanılır.
- Derleme kurulumu: Karşılaştırmalarda, R8 etkinleştirilmiş olarak yayınlama modunda oluşturulan uygulama kullanılır. Uygulama, anında (JIT) derlemeden kaynaklanan kararsızlığı azaltmak için tamamen önceden derlenmiştir.
- Sonuç seçimi: En kötü durum analizini sağlamak için uç noktalardaki aykırı değerler ve temsili olmayan gürültü, karşılaştırma sonuçlarının dışında bırakıldı. Ardından, üst sınır performans verilerinin ortanca değerleri seçilerek bir temel çizgi oluşturuldu.
Startup kahramanlarının karşılaştırmaları
Başlatma süresini ölçmek için PokedexStartupBenchmark kullandık. PokedexStartupBenchmark, Pokedex uygulamasının kullanıcıya görünür hale gelmesi için gereken süreyi ölçer.
Uygulama başlatma üç durumdan birinde gerçekleşebilir: baştan başlatma, hazır durumda başlatma veya çalışır durumda başlatma. Her durum, bir uygulamanın kullanıcıya görünür hale gelmesinin ne kadar süreceğini etkiler. Sıfırdan başlatmada uygulama sıfırdan başlar. Bu karşılaştırmada, uygulama başlatma performansını sıfırdan başlatma durumunda ölçüyoruz. Uygulamayı her zaman baştan başlatma varsayımına göre optimize etmenizi öneririz. Bu işlem, hazır durumda başlatma ve hızlı başlatma performansını da artırabilir.
Uygulama başlatma süresini ölçmek için kullandığımız metrikler ilk gösterime kadar geçen süre ve tam gösterime kadar geçen süredir.
İlk gösterime kalan süre
İlk görüntüleme süresi (TTID), bir uygulamanın ilk karesini oluşturması için gereken süreyi ölçer. Bu süreye, sıfırdan başlatma sırasında sürecin ilk kullanıma hazırlanması, sıfırdan veya hazır durumda başlatma sırasında etkinliğin oluşturulması ve ilk karenin görüntülenmesi dahildir.
PokedexStartupBenchmark, Compose 1.11, baştan başlatma (cold start) ile TTID için Views'dan% 2,5 daha yavaş.
Tam gösterime kalan süre
Tam gösterime kadar geçen süre (TTFD), uygulamanın etkileşimli hale gelmesine kadar geçen süreyi ölçer. Bu, tüm verilerin yüklendiği ve çizildiği anlamına gelir. Tam görüntüleme süresi hakkında daha fazla bilgi için Uygulama Başlatma Süresi başlıklı makaleyi inceleyin.
PokedexStartupBenchmark, Compose 1.11'de baştan başlatma ile TTFD için Görünümler'e kıyasla% 13,0 daha yavaş.
Kaydırma kahramanı karşılaştırmaları
Kaydırma performansını ölçmek için PokedexScrollBenchmark'ı kullandık. Bu test, resimlerin bulunduğu bir tembel ızgara için Pokedex uygulama ekranının kaydırma performansını ölçer. Bu karşılaştırmada, ekranın tamamı birden çok kez kaydırılıp fırlatılıyor ve yeni öğeler yükleniyor. Kaydırma performansı, takılma oranıyla ölçülür.
Jank oranı
Android cihazlar saniyede 60 veya 120 kareye (fps) kadar hızda oluşturma yapar. Bu, sistemin bir kare oluşturmak için katı bir son tarihi olduğu anlamına gelir (örneğin, 60 FPS için 16,6 ms). Uygulamanın işini yapması çok uzun sürerse jank olarak adlandırdığımız görünür bir titreme oluşabilir.
PokedexScrollBenchmark, Compose ve Views, Compose 1.9.0'dan beri% 0,21 oranında duraklama ile aynı performansı elde ediyor. Mutlak olarak, 485 kareden 1'i titrek çıktı.
Bu karşılaştırmalar, Compose 1.9 ve sonraki sürümlerin kaydırma sırasında duraklama ile ilgili Görünümler performansıyla eşleştiğini gösteriyor.
Önemli karşılaştırmalar yapma
Performans sonuçlarını doğrulamak ve karşılaştırmaları yerel olarak çalıştırmak için:
- Kaynak kodunu incelemek için AndroidX kılavuzunu inceleyin.
- Hero Benchmarks kaynak kodundaki talimatları uygulayın.
Bu karşılaştırmaları, uygulamanızı optimize ettiğiniz belirli bir cihaz gibi desteklenen tüm cihazlarda çalıştırabilirsiniz. Ancak resmi sonuçları doğrulamak için aynı donanım kurulumunu kullanın.