https://bitbucket.org/Unity-Technologies/memoryprofilerios
Unity5 开源了一个新工具能够用于内存分析。编辑器
Unity游戏中内存占用的大头通常是 纹理内存, 使用自带的Profiler 工具能够 查看内存使用状况。工具
游戏的内存使用状况,须要在真机上进行profiler测试,编辑器中,图片的格式和真机上图片格式可能不一样。测试
资源加载方式可能不一样,AB和Resources目录。优化
profiler 内存分析分为两种, Simple和detailed;ui
simple 能够看到实时统计数据:对象
纹理数量,mesh数量,材质,音乐等。游戏
在detail界面:图片
Assets下可看到ab中的资源,SceneMemory能够看到场景实例的对象。内存
1:ios 纹理格式尽可能设置为 pvrrtc ,可是非pot 图片没法支持,则使用RGBA16bit 格式
2: sprite packer打包的时候,会由于图片有无透明通道,而制造多个atlas, 能够修改policy 代码,使其不要根据是否有alpha分组,尽可能使图在一个atlas
3:背景音乐太长,也会占用大量内存,能够使用 load type , compressed in memory 在内存中压缩音乐格式, 用cpu换内存。
4:防止图片在ab中冗余,须要将sprite或者texture2d的资源明确的打入一个ab中,这样使用这些sprite的ui才可以复用 spriteatlas, 防止同一个图片在内存中有多份。
这样优化以后,下降了50%的纹理内存占用,下降了80%声音内存消耗
对于非POT的纹理,unity能够将其转化为POT大小,这样就能够使用压缩格式了。
Sprite类型不支持
Unity的图像资源分为Sprite类型和texture类型, 若是使用RawImage等应用sprite中的图像,会致使图像以Texture2D形式被AB使用,所以最好复制一份资源,供其使用。