[U Day Seoul 2024] Optimization: Memory Management
- 유니티 어드레서블 사용 시 메모리 관리가 중요하며, 특히 'Asset Bundles', 'Serialized Files', 'Remap' 세 가지 항목에 주목해야 합니다. 💡
- 'Remap'은 한 번 증가한 메모리 사용량이 앱 종료 전까지 반환되지 않으므로, 불필요한 에셋이 로드되지 않도록 특별히 관리해야 합니다. ⚠️
- 에셋 번들의 전체 크기보다 런타임 중 동시에 로드되는 에셋의 개수가 메모리 사용량에 훨씬 더 큰 영향을 미칩니다. 🔢
- 메모리 최적화를 위해 에셋 번들을 생성할 때 함께 사용될 확률이 높은 에셋들끼리 전략적으로 그룹화하고, 번들 간 종속성을 최소화해야 합니다. 🧩
- 사용이 완료된 에셋 번들은 즉시 메모리에서 해제하여 동시에 로드되는 에셋의 개수를 통제하는 것이 중요합니다. 🗑️
- 기본
Addressables.Release는 모든 파생 에셋까지 해제하므로, 번들만 해제하려면 AssetBundleProvider.cs의 Unload 메서드 매개변수를 true에서 false로 수정하는 등 코드 수정이 필요할 수 있습니다. 🛠️
- CPU 비용 절감을 위한 반복적인 번들 사전 로딩은 메모리 관점에서는 큰 낭비로 이어질 수 있으므로 피하는 것이 좋습니다. 🚫