Unity 安卓手机 AssetBundle.LoadFromFile() SerializedFile占用大量内存

原文地址:http://blog.csdn.net/huutu/article/details/53504039

这几天都在安卓手机上测试游戏,通过Profiler 查看Memory 发现,SerializedFile 占用了大部分内存,游戏内存占用一度达到400M,导致频繁崩溃。


初步理解为,SerializedFile 里面存储的是Assetbundle 硬盘镜像文件,于是把所有加载的 Assetbundle 都列出来,然后统计大小。

然而发现加载的Assetbundle 文件总数324 个,占用磁盘空间 73MB,与SerializedFile 占用内存相差很大。


于是在Google中查找相关资料,在Unity 论坛中发现 Unity 工程师如下解释:


帖子地址:

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. 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、加载完之后,人工判断哪些资源可以立即释放。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值