Unity 安卓手机 AssetBundle.LoadFromFile() SerializedFile占用大量内存
2016-12-07 12:13
483 查看
这几天都在安卓手机上测试游戏,通过Profiler 查看Memory 发现,SerializedFile 占用了大部分内存,游戏内存占用一度达到400M,导致频繁崩溃。
初步理解为,SerializedFile 里面存储的是Assetbundle 硬盘镜像文件,于是把所有加载的 Assetbundle 都列出来,然后统计大小。
然而发现加载的Assetbundle 文件总数324 个,占用磁盘空间 73MB,与SerializedFile 占用内存相差很大。
于是在Google中查找相关资料,在Unity 论坛中发现 Unity 工程师如下解释:
帖子地址: https://community.unity.com/t5/Android/Unity-5-2-1f1-SerializedFile-memory/m-p/2343988#M10133 意思就是说,每个Assetbundle文件在Load的时候都会产生 0.5MB的内存,直到Unload掉。
我的游戏是一直不Unload的,所以SerializedFile 占用内存特别多。
转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
那么现在要做的就是减少AssetBundle文件,有两个点:
1、打Bundle的时候,只有一个引用的就不设置AssetbundleName。减少Assetbundle文件数量。
2、加载完之后,人工判断哪些资源可以立即释放。
初步理解为,SerializedFile 里面存储的是Assetbundle 硬盘镜像文件,于是把所有加载的 Assetbundle 都列出来,然后统计大小。
然而发现加载的Assetbundle 文件总数324 个,占用磁盘空间 73MB,与SerializedFile 占用内存相差很大。
于是在Google中查找相关资料,在Unity 论坛中发现 Unity 工程师如下解释:
帖子地址: https://community.unity.com/t5/Android/Unity-5-2-1f1-SerializedFile-memory/m-p/2343988#M10133 意思就是说,每个Assetbundle文件在Load的时候都会产生 0.5MB的内存,直到Unload掉。
我的游戏是一直不Unload的,所以SerializedFile 占用内存特别多。
转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
那么现在要做的就是减少AssetBundle文件,有两个点:
1、打Bundle的时候,只有一个引用的就不设置AssetbundleName。减少Assetbundle文件数量。
2、加载完之后,人工判断哪些资源可以立即释放。
相关文章推荐
- Unity实战 RTS3D即时战略游戏开发(七) 信息显示
- 【Unity5.x Shader】SubShader Tags 标签
- PBR基于物理渲染
- Unity中的Lod
- 按本地坐标移动物体
- unity3D-游戏/AR/VR在线就业班 C#入门静态类学习笔记
- unity3D-游戏/AR/VR在线就业班 C#入门抽象类学习笔记
- unity3D-游戏/AR/VR在线就业班 C#入门封装和继承学习笔记
- print和Debug.log区别
- Unity 集成 OPENCV 【二】
- unity 模型层次细节
- unity插件Skyshop的介绍与基本操作
- Unity 集成OpenCV 【一】
- 时光煮雨 Unity3D实现2D人物移动-总结篇
- Unity中使用Attribute
- 2016-2020 VR市场:PSVR占30%份额2016-2020 VR市场:PSVR占30%份额_广州达内Unity3D培训机构
- TGA:《守望先锋》获年度最佳游戏_广州达内Unity3D培训机构
- 谷歌评选2016最佳游戏,PMGO成最大赢家_广州达内Unity3D培训机构
- 大龄群体的游戏市场更有潜力_广州达内Unity3D培训机构
- 《最终幻想15:王者之剑》CG电影登陆Steam_广州达内Unity3D培训机构