Belleği azaltma

Android bellek yönetimini anladıktan ve oyununuzun bellek kullanımını ölçmek için araçlar ayarladıktan sonraki adım, bellek kullanımını aktif olarak azaltmak ve optimize etmektir. Android'in katı sınırları içinde kalmak, sistemin oyununuzu kapatmasını önlemeye, uzun başlatma sürelerini durdurmaya ve oyununuzun tüm cihazlarda iyi çalışmasını sağlamaya yardımcı olur.

Bu kılavuzda, oyununuzun bellekte kapladığı yeri azaltmaya yönelik pratik teknikler sunulmaktadır. Özellikle öğe düzeyinde optimizasyon, motora özgü yapılandırmalar ve bellek yönetimiyle ilgili en iyi uygulamalara odaklanılmaktadır.

Unity'de belleği azaltma

Unity'nin mimari tasarımı nedeniyle, yerel blok ayırıcılar ve yönetilen yığın genişledikten sonra motor, öğeler serbest bırakıldıktan sonra bile bu bellek sayfalarını işletim sistemine (OS) hemen döndürmek yerine yeniden kullanmak üzere saklama eğilimindedir. Özellikle, sanal adres alanı (ayrılmış bellek) işlem süresince ayrılmış olarak kalır ve fiziksel bellek (RSS), birkaç çöp toplama (GC) ve kırpma döngüsü gerçekleşene kadar hemen geri alınmaz. Sonuç olarak, geçici bir bellek zirvesi, gerçek kullanım düştükten sonra bile yerleşik belleğin uzun süre şişkin kalmasına neden olabilir. Bu davranış, düşük seviye cihazlarda bellek yetersizliği (OOM) kilitlenmesi riskini artırır ve genel çalışma zamanı kararlılığını düşürür.

Bu nedenle, Unity bellek optimizasyonuna bu motor davranışlarına göre uyarlanmış üç temel sütun üzerinden yaklaşılmalıdır:

  • Öncelikle etkin bellek kullanımını kontrol ederek bellek kullanımında ani artışları önleyin.
  • Gereksiz öğelerin ve yerel kaynakların oluşturulmadığından emin olmak için doku biçimlerini ve gölgelendirici varyantlarını yönetin.
  • GC sıklığını ve yığın genişlemesini en aza indirmek için yönetilen yığında gereksiz ayırmaları ortadan kaldıracak şekilde çalışma zamanı kodu yapılarını yeniden düzenleyin.

Daha fazla bilgi için Unity bellek optimizasyonu başlıklı makaleyi inceleyin.