Bu sayfada fazla çizimin ne olduğu, nasıl teşhis edileceği ve ortadan kaldırmanın veya azaltmanın yolları açıklanmaktadır.
Bir uygulamanın tek bir kare içinde aynı pikseli birden çok kez çizmesine fazla çizim denir. Fazla çizim genellikle gereksizdir ve ortadan kaldırmak en iyisidir. Fazla çizim, kullanıcının ekranda gördüklerine katkıda bulunmayan pikselleri oluşturmak için GPU'yu boşa harcadığında bir performans sorunu haline gelir.
Fazla çizim hakkında
Fazla çizim, sistemin tek bir oluşturma karesinde ekrana birden fazla kez bir piksel çizmesini ifade eder. Örneğin, çok sayıda yığılmış kullanıcı arayüzü kartınız varsa her kart, altındaki kartın bir kısmını gizler.
Ancak sistemin, kartların yığındaki gizli bölümlerini çizmesi gerekir. Bunun nedeni, yığın kartların ressamın algoritmasına göre, yani arka arkaya oluşturulmasıdır. Bu oluşturma sırası, sistemin gölgeler gibi yarı saydam nesnelere uygun alfa harmanlaması uygulamasını sağlar.
Fazla çizim sorunlarını bulma
Platform, fazla çizimin uygulamanızın performansını etkileyip etkilemediğini belirlemenize yardımcı olmak için aşağıdaki araçları sunar.
GPU fazla çizim aracı hata ayıklama
GPU Fazla Çizim Aracı Hata Ayıklama aracı, uygulamanızın her pikseli ekranda kaç kez çizdiğini göstermek için renk kodlaması kullanır. Bu sayı ne kadar yüksek olursa fazla çizimin uygulamanızın performansını etkileme olasılığı o kadar yüksek olur.
Daha fazla bilgi için GPU fazla çizimini görselleştirme bölümüne bakın.
Profil GPU oluşturma aracı
Profil GPU Oluşturma aracı, oluşturma ardışık düzeninin her aşamasının tek bir kareyi kaydırma histogramı olarak görüntülemek için gereken süreyi gösterir. Her bir çubuğun turuncu renkte belirtilen İşlem bölümü, sistemin arabellekleri ne zaman değiştirdiğini gösterir. Bu metrik, fazla çizim yapmayla ilgili önemli ipuçları sağlar.
Daha az performanslı GPU'larda mevcut doluluk oranı (GPU'nun kare arabelleğini doldurma hızı) düşük olabilir. Bir kare çizmek için gereken piksel sayısı arttıkça GPU'nun yeni komutları işlemesi ve sistemin geri kalanından bunu yakalayana kadar beklemesini istemesi daha uzun sürebilir. İşlem çubuğu, bu ani artışın, GPU'nun mümkün olduğunca hızlı bir şekilde piksel çizmeye çalışırken bunaldığını gösterir. İşlenmemiş piksel sayıları dışındaki sorunlar da bu metriğin yükselmesine neden olabilir. Örneğin, Hata Ayıklama GPU Fazla Çizim aracı yoğun bir şekilde fazla çizim ve İşlem değeri artışları gösteriyorsa muhtemelen fazla çizimle ilgili bir sorun vardır.
Daha fazla bilgi için Profil GPU oluşturma hızı bölümüne bakın.
Fazla çizimi düzelt
Fazla çizimi azaltmak veya ortadan kaldırmak için aşağıdakileri yapabilirsiniz:
- Düzenlerdeki gereksiz arka planları kaldırın.
- Görünüm hiyerarşisini düzleştirin.
- Şeffaflığı azaltın.
Bu bölümde, söz konusu yaklaşımların her biri hakkında bilgi verilmektedir.
Düzenlerlerdeki gereksiz arka planları kaldırın
Varsayılan olarak bir düzenin arka planı yoktur. Bu da, hiçbir şeyi doğrudan kendi başına oluşturmayacağı anlamına gelir. Ancak, düzenlerin arka planı olduğunda, bu düzenlerin fazla çizim yapmasına neden olabilir.
Gereksiz arka planları kaldırarak oluşturma performansını artırabilirsiniz. Uygulamanın üzerine çizdiği her şeyle tamamen örtüldüğü için gereksiz arka plan görünmeyebilir. Örneğin, sistem, bir ebeveynin arka planını, arka planı üzerinde çocuklardan görüntüleyecek şekilde tamamen kaplayabilir.
Neden fazla çizim yaptığınızı öğrenmek için Düzen İnceleyici aracındaki hiyerarşiye bakın. Kullanıcının göremediği arka planları bulup bunları ortadan kaldırabilirsiniz. Ortak bir arka plan rengine sahip birçok kapsayıcının bulunduğu yerlerde gereksiz arka planları kaldırabilirsiniz. Pencere arka planını uygulamanızın ana arka plan rengine ayarlayabilir ve tüm kapsayıcıları arka plan değeri tanımlanmadan onun üzerindeki bırakabilirsiniz.
Görünüm hiyerarşisini düzleştirin
Modern düzenler, güzel tasarımlar oluşturmak için görünümleri yığmanıza ve katman haline getirmenize yardımcı olur. Ancak bu yapmak, özellikle de yığılmış her bir görüntüleme nesnesinin opak olduğu ve ekranda hem gördüğünüz hem de görülmeyen piksellerin çizilmesini gerektiren senaryolarda fazla çizime neden olarak performansı düşürebilir.
Bu sorunla karşılaşırsanız çakışan kullanıcı arayüzü nesnelerinin sayısını azaltmak için görünüm hiyerarşinizi optimize ederek performansı artırabilirsiniz. Bunu nasıl yapacağınız hakkında daha fazla bilgi edinmek için Performans ve hiyerarşileri görüntüleme bölümüne bakın.
Şeffaflığı azaltın
Ekranda şeffaf piksellerin oluşturulması (alfa oluşturma olarak bilinir), fazla çizim yapılmasına yol açan en önemli faktörlerden biridir. Standart fazla çizimin aksine (sistem, üzerine opak pikseller çizerek mevcut çizilmiş pikselleri tamamen gizlediğinde), doğru harmanlama denkleminin gerçekleşebilmesi için önce mevcut piksellerin çizilmesi gerekir.
Saydam animasyonlar, kararmalar ve gölgeler gibi görsel efektler bir miktar şeffaflık içerir ve bu nedenle fazla çizime önemli ölçüde katkıda bulunabilir. Bu durumlarda, oluşturduğunuz şeffaf nesnelerin sayısını azaltarak fazla çizimleri iyileştirebilirsiniz. Örneğin, TextView
içinde yarı saydam alfa değeri ayarlanmış siyah metin çizerek gri metin elde edebilirsiniz. Ancak metni gri çizerek daha iyi performans
elde edebilirsiniz.
Şeffaflığın çizim ardışık düzeninin tamamında uyguladığı performans maliyetleri hakkında daha fazla bilgi edinmek için Gizli Şeffaflık Maliyetleri videosunu izleyin.