CPU ve GPU kare işleme sürelerini (kare süreleri) tahmin etmek, uygulamanızın performansını anlamak ve darboğazları bulmak için önemlidir. AGI ile bir uygulamanın profilini oluşturduğunuzda Sistem Profilleyici, kare sürelerini tahmin etmek için kullanabileceğiniz izleme verileri sağlar.
CPU süreleri
AGI'de, sistem profilinin CPU kanalında toplam ve etkin CPU kare sürelerini görüntüleyebilirsiniz.
Toplam CPU süresi
Harcanan toplam CPU süresini ölçmek için art arda çerçeve gönderme etkinlikleri arasındaki süreyi içeren zaman aralığını seçin. Kare gönderme etkinlikleri eglSwapBuffers
(OpenGL için) ve vkQueuePresentKHR
(Vulkan için) şeklindedir.

eglSwapBuffer
etkinliği arasındaki süre.
vkQueuePresentKHR
etkinliği arasındaki süre.Bu ölçüm,toplam CPU süresinin bir tahminidir ancak etkin CPU süresini temsil etmez. Örneğin, GPU'ya bağlı uygulamalarda CPU, yeni bir kare göndermeden önce GPU'nun çalışmasını tamamlamasını beklemeyebilir. Bu durum genellikle bir dequeueBuffer
, eglSwapBuffer
(OpenGL için) veya vkQueuePresent
(Vulkan için) etkinliği CPU süresinin büyük bir bölümünü kapladığında ortaya çıkar.
Bekleme süresi, etkin CPU süresine değil, toplam CPU süresine dahil edilir.

dequeueBuffer
ve eglSwapBuffer
etkinlikleri sırasında CPU'nun büyük miktarda boşta kalması
Etkin CPU süresi
Etkin CPU süresi, CPU'nun boşta kalma durumunda olmadan uygulama kodunu ne zaman çalıştırdığını belirler.
Etkin CPU süresini ölçmek için CPU etkinliklerinin hemen üzerindeki Çalışıyor dilimlerini görüntüleyin. İki çerçeve gönderme etkinliği arasındaki, Çalışıyor durumundaki izlemenin tüm bölümlerini sayın. Çalışan mesaj dizilerini eklediğinizden emin olun.


Etkin CPU süresini ölçmenin bir diğer yolu da CPU kanallarındaki uygulama dilimlerini görüntülemektir. Bu dilimler, CPU'nun ne zaman çalıştığını gösterir ve Çalışıyor dilimleriyle eşleşir.

Uygulama dilimlerini belirlemeye yardımcı olmak için uygulamanıza ATrace işaretçileri ekleyebilirsiniz. Bu durumda işaretçiler, Sistem Profilleyici'nin CPU kanalında gösterilir.

GPU kare sürelerini tahmin etme
GPU kare sürelerini tahmin etmek için Sistem Profilleyici'de GPU dilimlerini veya GPU sayaçları kullanabilirsiniz. GPU dilimleri kullanıldığında tahmin daha doğru olur.
GPU dilimleri
Sistem Profilleyici'de GPU dilimi bilgileri mevcutsa uygulamanızın tek bir kareyle ilişkili görevler üzerinde çalıştığı toplam süreyi ölçerek çok doğru GPU kare süresi bilgileri edinebilirsiniz.
Mali cihazlar
Mali cihazlarda GPU dilimleri parça, parça olmayan ve bazen ek parça olmayan parçalara sahiptir. Daha az karmaşık karelerde, parça ve parça dışı çalışma sıralı olduğundan bir karenin çalışmasını diğerinden ayırt etmek için etkin GPU çalışması arasındaki boşluklar aranabilir.
Alternatif olarak, GPU'ya gönderilen işe aşinaysanız gönderilen oluşturma geçişlerinin desenini tanımlamak, bir karenin ne zaman başladığı ve bittiği hakkında bilgi sağlar.


Daha fazla paralelleştirilmiş GPU iş akışı olan uygulamalarda, her dilim için Seçim bölmesinde aynı submissionID değerine sahip tüm kareleri arayarak GPU kare sürelerini alabilirsiniz.
Vulkan tabanlı uygulamalarda, bir 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 parçasında görünür ve her zaman sırayla temsil edilir. Böylece, bir karenin oluşturma geçişlerini temsil eden tüm dilimlere bakabilir ve GPU kare sürelerini ölçmek için bunları kullanabilirsiniz.


Daha önce açıklanan Mali senaryosuna benzer şekilde: Uygulama Vulkan kullanıyorsa Vulkan Etkinlikleri kanalı, kareyi yürütmek için gönderilen çalışma hakkında bilgi sağlar. Oluşturma geçişlerini vurgulamak için kareyle ilişkili Vulkan Etkinlikleri dilimlerini 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 işe aşinaysanız oluşturma geçişlerinin hangi modelle yürütüldüğünü belirleyebilir ve bu bilgilerden kare sınırlarını belirleyebilirsiniz.

GPU sayaçları
Bir izlemede GPU dilimi bilgileri kullanılamıyorsa GPU sayacı kanallarını kullanarak GPU kare süresini tahmin edebilirsiniz.
Mali cihazlar
Mali cihazlarda, GPU yoğun olmayan bir uygulamanın GPU kare süresini tahmin etmek için GPU kullanımı kanalını kullanabilirsiniz. GPU kullanımı daha az olan uygulamalarda, sürekli yüksek etkinlik yerine düzenli olarak yüksek ve düşük GPU etkinliği dönemleri olur. 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 GPU'ya daha yoğun ihtiyaç duyuyorsa GPU kullanımı sürekli olarak çok yüksek olabilir. Bu durumda, GPU etkinliğini izlemek ve GPU kare sürelerini tahmin etmek için parça kuyruğu kullanımı ve parça dışı kuyruk kullanımı kanallarını kullanabilirsiniz. Parça ve parça olmayan parçalarda kalıplar arayarak bir çerçevenin sınırlarının nerede olduğuna dair kaba bir tahminde bulunabilir ve bunu GPU çerçeve süresini ölçmek için kullanabilirsiniz.

Adreno cihazlar
Adreno cihazlarda, uygulama GPU yoğun değilse GPU kare sürelerini önceki bölümdeki Mali cihazlarda olduğu gibi tahmin edebilirsiniz.

Uygulama GPU'ya daha yoğunsa ve uygulamanın GPU kullanım yüzdesi sürekli olarak yüksekse GPU kare sürelerini tahmin etmek için Nokta Talimatı/Saniye ve Parça Talimatı / Saniye kanallarını kullanabilirsiniz. Bu kanalların etkinlik seviyelerinde 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.

Aşağıdaki diğer kanallar da benzer bilgiler sağlayabilir:
- Gölgelenen Köşe Noktası Sayısı / Saniye
- Gölgeli Parça Sayısı / Saniye
- Gölgelendirme için kullanılan köşelerin yüzdesi
- Gölgelendirme Parçalarının Geçtiği Süre Yüzdesi