Bir uygulamanın bellek kullanım özellikleri, performansının temel bir unsurudur. Mevcut GPU sayaç bilgilerine bakarak bu özellikleri analiz etmek için Sistem Profil Aracı'nı kullanabilirsiniz.
Adreno cihazlar
Adreno cihazlarda ilk olarak CPU ve GPU kare işleme sürelerini tahmin etme bölümünde açıklandığı gibi tek bir GPU karesiyle tutarlı bir süreyi vurgulayarak başlayın. Sayaç kanallarının tümü aynı zamanlama tekniğini kullandığından ve bellek kullanımı hakkında daha doğru tahminler yapılmasını sağladığından (verileri sayaç izleme verilerinden bağımsız olarak toplanan GPU dilimlerinden türetilen kare süresi sınırlarının kullanılmasına kıyasla), bu sayfada açıklanan tekniği kullanarak kare süresi sınırlarınız için kare süresi sınırlarınız için GPU Yüzdesi Kullanımı veya benzer bir sayaç kanalını kullanın.
![Alttaki ilgili sayaçları sıralayan kullanım kanalı](https://developer.android.com/static/images/agi/memory_efficiency-images/image1.png?authuser=19&hl=tr)
Toplam okuma/yazma
Profil oluşturucuda tek bir kareyi vurguladıktan sonra, Toplam Okuma (Bayt/sn) ve Yazma Toplamı (Bayt/sn) sayaçlarına bakarak başlayın. Bu sayaçlar, tek bir kare boyunca bellek veri yoluyla ne kadar verinin geçtiğine dair iyi bir genel görünüm sağlar. Bellek bant genişliği, mobil cihazlarda pilin çok hızlı tükenmesine neden olan büyük bir kaynak olduğundan veri yolu üzerinden gönderdiğiniz veri miktarını en aza indirmek için elinizden geleni yapın.
![Okuma ve Yazma Toplam Sayaç](https://developer.android.com/static/images/agi/memory_efficiency-images/image2.png?authuser=19&hl=tr)
Ayrıca, tepe ve doku verileri için kullanılan bant genişliğinin kısmını belirlemek üzere Vertex Bellek Okuma (Bayt/Saniye) ve Doku Belleği Okuma (Bayt/Saniye) sayaçlarını da inceleyebilirsiniz.
![Vertex + Doku Bellekli Okuma Sayaçları](https://developer.android.com/static/images/agi/memory_efficiency-images/image3.png?authuser=19&hl=tr)
Bu değerler için "iyi" değerleriniz, uygulamanızda görülen iş yükünün türüne bağlıdır. Örneğin, 2D uygulamalarda nispeten büyük miktarlarda (~2+ GB/sn) kullanılan doku belleği okuma bant genişliği görülebilir ancak tepe noktası belleği bant genişliği çok düşük olabilir (~50 MB/sn). Daha fazla ayrıntı için Köşe belleği bant genişliğini analiz etme ve Doku bellek bant genişliği kullanımını analiz etme belgelerine göz atın.
Getirme tezgahları
Vertex Getirme Durağı %'si, Doku Getirme Durağı Yüzdesi ve Sistem Belleğindeki Bekleme %'si sayaçlarına bakın. Bunlar, uygulamamızın genel bellek performansı hakkında bazı ipuçları verir. Değerlerin yaklaşık %5'in üzerinde olması, uygulamanızın bellekte verimli bir şekilde veri dağıtmadığı ya da verilerin önbellekten yararlanmak için verilerine verimli bir şekilde eriştiği anlamına gelir. Bu tür öğeler için bellek kullanımını iyileştirmeyle ilgili ayrıntılar için Köşe belleği bant genişliğini analiz et ve Doku bellek bant genişliği kullanımını analiz et bölümlerine göz atın.
![Bellek Durağı Sayaçları](https://developer.android.com/static/images/agi/memory_efficiency-images/image4.png?authuser=19&hl=tr)
Mali cihazlar
Mali cihazlarda önce CPU ve GPU kare işleme sürelerini tahmin etme bölümünde açıklandığı gibi ilk olarak tek bir GPU karesiyle tutarlı bir süreyi vurgulayarak başlayın. Sayaç kanallarının tümü aynı zamanlama tekniğini kullandığından ve bellek kullanımı hakkında daha doğru tahminler yapılmasını sağladığından (verileri sayaç izleme verilerinden bağımsız olarak toplanan GPU dilimlerinden türetilen kare süresi sınırlarının kullanılmasına kıyasla), bu sayfada açıklanan tekniği kullanarak kare süresi sınırlarınız için kare süresi sınırlarınız için GPU Yüzdesi Kullanımı veya benzer bir sayaç kanalını kullanın.
![İlgilendiğiniz sayaçların altında sıralanan kullanım alanı](https://developer.android.com/static/images/agi/memory_efficiency-images/image5.png?authuser=19&hl=tr)
Çıkış Harici Toplamları
Sistem Profil Aracı'nda tek bir kareyi vurguladıktan sonra, Çıkış Harici Okuma baytları Çıkış Harici Yazma baytları sayaçlarına bakın. Bu sayaçlar, tek bir kare boyunca bellek veri yoluyla ne kadar verinin geçtiğine dair iyi bir genel görünüm sağlar. Bellek bant genişliği, mobil cihazlarda pil tüketiminin önemli bir kaynağı olduğundan veri yolu üzerinden gönderdiğiniz veri miktarını en aza indirmek için elinizden geleni yapın.
![Çıkış Harici sayaç kanalları](https://developer.android.com/static/images/agi/memory_efficiency-images/image6.png?authuser=19&hl=tr)
Dahili toplamları girin
Önbellekler hakkında size bilgi sağlayan sayaçlar da vardır. İlgilendiğiniz sayaçlar “Dahili [okuma|yazma] durak döngüleri girişi”dir. Bunların yüksek olması, önbelleğe başarılı bir şekilde ulaştığınız, ancak çok fazla okuma isteği yapıldığı ve dolayısıyla gölgelendirici kodu belleğe erişim elde etmeyi beklerken durakladığı anlamına gelir.
![Dahili sayaç kanalı girin](https://developer.android.com/static/images/agi/memory_efficiency-images/image7.png?authuser=19&hl=tr)
Getirme tezgahları
Bakabileceğiniz bir sonraki sayaç grubu, Vertex Prefetcher Stanll Cycles (Vertex Prefetcher Stall Cycles) ve Texture Fetch Stanll (Doku Getirme Standı) sayaçlarıdır. Bunlar, uygulamamızın genel bellek performansı hakkında bazı ipuçları verir. Yaklaşık% 5'in üzerinde değerler görüyorsanız bu durum, verilerimizi belleğe verimli bir şekilde yerleştirmediğiniz veya önbelleğin avantajlarından yararlanmak için verilerimize etkili bir şekilde erişmediğiniz anlamına gelir. Bu öğe türlerinin bellek kullanımını nasıl iyileştireceğinizle ilgili ayrıntıları öğrenmek için [Vertex|Doku] Bellek Bant Genişliği Analizi makalelerine göz atın
![Satış yerleri sayaç kanallarını getir](https://developer.android.com/static/images/agi/memory_efficiency-images/image8.png?authuser=19&hl=tr)