Bit eşlemler genellikle bir uygulamadaki en fazla bellek tüketen nesnelerdir. Kod çözme ve ölçeklendirme işlemleri, kare oluşturma için genellikle kritik yoldadır. Bit eşlem bellek kullanımını optimize etmek, duraklamaları, ANR'leri ve OOM ile ilgili işlem sonlandırmalarını azaltarak kullanıcı arayüzü yanıt verme hızında, pil ömründe ve genel kararlılıkta önemli iyileştirmeler sağlar.
Yüksek bit eşlem bellek kullanımını belirleme
Android vitals, Android cihazlardan gelen verileri toplayarak bir uygulamanın bit eşlem bellekte kapladığı yerle ilgili metrikler sağlar. Bu metrikler varsayılan olarak günlük verilerin 28 günlük özeti şeklinde hesaplanır. Bu veriler, farklı cihaz türleri ve sürümlerinde bellek verimliliğindeki eğilimleri ve olası gerilemeleri belirlemeye yardımcı olur.
Android vitals, uygulamanızın bit eşlem bellek kullanımını aşağıdaki işlem durumlarına göre ayrıntılı olarak paylaşır:
- Ön plan: Uygulamanın işlemi görünür durumdadır. P99'un, diğer işlem durumlarına kıyasla ön planda önemli ölçüde daha yüksek olması beklenir.Ancak geliştiriciler, P99/P50 oranı önemliyse (ör. 3,5 katından yüksekse) bunu araştırmalıdır.Çünkü bu durum genellikle bit eşlem bellek sızıntısına işaret eder. Bunu, tipik kullanım (P50) ile aykırı kullanım (P99) arasındaki farklılığa bakarak belirleyebilirsiniz. Genel öğe şişmesi, belleği tüm yüzdelik dilimlerde eşit şekilde şişirirken bellek sızıntıları zamanla artarak kuyruk ucundaki verileri (P99) büyük ölçüde çarpıtır. Uygulama diğer durumlara geçtikten sonra ön plan bit eşlem ayırmalarının gereksiz yere devam etmediğinden emin olun.
- Kullanıcı tarafından algılanan hizmetler: Uygulamanın işlemi, algılanabilir durumda çalışıyor. Bu kapsamda ön plan hizmetleri, hızlandırılmış işler ve kullanıcı tarafından başlatılan veri aktarımı işleri yer alır. Uygulamalar, bu durumlara geçiş yaparken yoğun ön plan bit eşlem ayırmalarını tutmamalıdır. Bu hizmetler uzun süren görevler için tasarlandığından büyük öğelerin tutulması genel kullanıcı deneyimini kötüleştirir ve düşük bellek sonlandırıcı arka plan programını (LMKD) daha düşük öncelikli işlemleri sonlandırarak belleği geri almaya zorlar.
- Arka plan: Uygulama, arka plan hizmeti çalıştırıyor veya kısa süre önce arka plana alındı ancak henüz önbelleğe alınmadı. Bu işlem durumu, ön plandaki veya algılanabilir işlemlerden daha az önemli olduğundan uygulamalar, bellek baskısını azaltmak için büyük bit eşlem öğelerini burada açıkça serbest bırakmalıdır.
- Önbelleğe alınmış: Uygulama, önbelleğe alınmış durumdadır. Bu durum, LMK'ler gibi sistem belleği baskısına karşı oldukça hassastır. Uygulamalar, işletim sistemi tarafından kaldırılmamak için bu durumda bit eşlem bellek kullanımını proaktif olarak azaltmalıdır.
Yüksek bit eşlem bellek kullanımına katkıda bulunanlar
Hiç kullanılmamış sanal bellek de hesaplamaya dahil edilebilir. Beklenmedik şekilde yüksek bit eşlem bellek kullanımı görüyorsanız kullanılmayan bellek ayırmadığınızı doğrulayın.