CPU ve GPU çerçeve işleme sürelerini (kare süreleri) tahmin etmek, uygulamanızın performansını anlamak ve performans sorunlarını tespit etmek için çok önemlidir. AGI ile bir uygulamanın profilini oluşturduğunuzda System Profiler kare sürelerini tahmin etmek için kullanabileceğiniz iz verilerini sağlar.
CPU süreleri
AGI'da bir sistem profilinin CPU kanalındaki toplam ve etkin CPU kare sürelerini görüntüleyebilirsiniz.
Toplam CPU süresi
Harcanan toplam CPU süresini ölçmek için ardışık kare gönderme etkinlikleri arasındaki süreyi içeren zaman aralığını seçin. Çerçeve gönderme etkinlikleri, eglSwapBuffers
(OpenGL için) ve vkQueuePresentKHR
(Vulkan için) şeklindedir.
Bu ölçüm toplam CPU süresine dair bir tahmindir,ancak etkin CPU süresini yansıtmayabilir. Örneğin, GPU'ya bağlı uygulamalarda CPU, yeni bir kare göndermeden önce GPU'nun çalışmasını tamamlamasını bekleyebilir. Bu durum genellikle dequeueBuffer
, eglSwapBuffer
(OpenGL için) veya vkQueuePresent
(Vulkan için) etkinliği CPU süresinin büyük bir kısmını kapladığında meydana gelir.
Bekleme süresi, toplam CPU süresine dahil edilir, ancak etkin CPU süresine dahil edilmez.
Etkin CPU süresi
Aktif CPU süresi, CPU'nun uygulama kodunu boşta olmadan ne zaman çalıştıracağını belirler.
Etkin CPU süresini ölçmek için CPU etkinliklerinin hemen üzerindeki Çalışıyor dilimlerini görüntüleyin. Çalışıyor durumunda olan iki kare gönderme etkinliği arasındaki izlemenin tüm bölümlerini sayın. Çalışan iş parçacıkları eklediğinizden emin olun.
Etkin CPU süresini ölçmenin diğer bir yolu da CPU kanallarındaki uygulama dilimlerini görüntülemektir. Bu dilimler CPU çalışırken gösterilir ve Çalışıyor dilimlere karşılık gelir.
Uygulama dilimlerinin tanımlanmasına yardımcı olması için uygulamanıza ATrace işaretçileri ekleyebilirsiniz. Bu işlem, Sistem Profili'nin CPU izlemesinde işaretçiler gösterir.
GPU kare sürelerini tahmin etme
GPU kare sürelerini tahmin etmek için System Profiler'da GPU dilimleri veya GPU sayaçlarını kullanabilirsiniz. GPU dilimleri kullanılırken tahmin daha doğrudur.
GPU dilimleri
System Profiler'da GPU dilim bilgileri varsa uygulamanızın tek bir kareyle ilişkilendirilmiş görevler üzerinde çalışırken harcadığı toplam süreyi ölçerek çok doğru GPU kare süresi bilgileri alabilirsiniz.
Mali cihazlar
Mali cihazlarda GPU dilimleri parça, parça olmayan ve bazen de parça olmayan tamamlayıcı parçalara sahiptir. Daha az karmaşık karelerde, parça ve parça olmayan işler ardışıktır. Bu nedenle, bir çerçevenin çalışmasını diğerinden ayırt etmek için aktif GPU işi arasındaki boşluklar kontrol edilebilir.
Alternatif olarak, GPU'ya gönderilen çalışmaya aşinaysanız gönderilen oluşturma geçişlerinin kalıbının tanımlanması, karenin ne zaman başlayıp bittiği hakkında bilgi sağlar.
Daha yoğun şekilde paralelleştirilmiş GPU iş akışına sahip uygulamalarda, her bir dilim için Seçim bölmesinde aynı submissionID'ye sahip tüm kareleri arayarak GPU kare süreleri elde edebilirsiniz.
Vulkan tabanlı uygulamalarda, kare oluşturmak için birden fazla gönderim kullanılabilir. Her gönderim için bir dilim içeren Vulkan Etkinlikleri kanalını kullanarak gönderim kimliklerini takip edin. Bir gönderim dilimi seçildiğinde, gönderime karşılık gelen tüm GPU etkinlik dilimleri vurgulanır.
Adreno cihazlar
Adreno cihazlarda GPU dilimleri, GPU Sırası 0 kanalında görünür ve her zaman sıralı olarak temsil edilir. Böylece, bir kare için oluşturma geçişlerini temsil eden tüm dilimlere bakabilir ve GPU kare sürelerini ölçmek için kullanabilirsiniz.
Daha önce açıklanan Mali senaryosuna benzer: Uygulama Vulkan kullanıyorsa Vulkan Etkinlikleri kanalı, çerçeveyi yürütmek için gönderilen çalışmayla ilgili bilgi sağlar. Oluşturma geçişlerini vurgulamak için çerçeveyle ilişkilendirilen Vulkan Etkinlikleri dillerini tıklayın.
Uygulamanın büyük ölçüde GPU'ya bağlı olması nedeniyle GPU çerçeve sınırlarının ayırt edilmesinin daha zor olduğu bazı senaryolar vardır. Bu senaryolarda GPU'ya gönderilen çalışma hakkında bilginiz varsa oluşturma sırasında kullanılan kalıbı belirleyebilir ve bu bilgilerden çerçeve sınırlarını belirleyebilirsiniz.
GPU sayaçları
Bir izde GPU dilim bilgileri yoksa GPU sayacı kanallarını kullanarak GPU kare süresini tahmin edebilirsiniz.
Mali cihazlar
Mali cihazlarda, yoğun GPU kullanmayan bir uygulamanın GPU kare süresini tahmin etmek için GPU kullanımı kanalını kullanabilirsiniz. Daha az GPU kullanan uygulamalarda, sürekli yüksek etkinlik yerine düzenli olarak yüksek ve düşük GPU etkinliği görülür. GPU kullanımı kanalını kullanarak GPU kare sürelerini tahmin etmek için kanaldaki yüksek etkinlik dönemlerinin süresini ölçün.
Uygulama daha fazla GPU kullanıyorsa GPU kare sürelerini tahmin etmek için parça ve parça olmayan kanalları kullanabilirsiniz. Parça ve parça olmayan kanalların etkinlik düzeylerinde kalıplar arayarak bir karenin sınırlarının nerede olduğuna dair kaba bir tahmin elde edebilir ve bunu GPU kare süresini ölçmek için kullanabilirsiniz.
Adreno cihazlar
Adreno cihazlarda, uygulama yoğun GPU'lu değilse GPU kare sürelerini, bir önceki bölümde belirtilen Mali cihazlarda yaptığınız gibi tahmin edebilirsiniz.
Uygulama daha fazla GPU kullanıyorsa GPU kare sürelerini tahmin etmek için Vertex Talimatları/Saniye ve Parça Talimatları / Saniye kanallarını kullanabilirsiniz. Bu kanalların etkinlik düzeylerinde kalıplar arayarak bir karenin sınırlarının nerede olduğuna dair kaba bir tahmin elde edebilir ve bunu GPU kare süresini ölçmek için kullanabilirsiniz.
Şu diğer parçalarda benzer bilgiler sunulabilir:
- Nokta Gölgelendirilmiş / Saniye
- Parça Gölgeli / Saniye
- Zaman Gölgelendirme Köşeleri Yüzdesi
- Zaman Bölümleri Yüzdesi