最近的开发中碰到这样一个问题:
问题描述:cocos creator版本 2.4.3,使用cc.loader.loadRes加载声音文件(mp3),声音文件大小4078KB(3.98MB),加进内存后内存占用100M左右,如下图:
声音文件大小:
加载mp3文件前:
由于内存随时都在波动,取一个相对稳定的值,占用内存310.6M
加载mp3文件后,通过cc.loader.loadRes加载:
占用内存427.3M
可见,一个3.98M的声音文件加进内存后占用内存427.3-310.6=116.7M,怎么这么大,百思不得其解,难道是程序逻辑有问题啊,但是就一个加载资源,也不存在什么逻辑啊,奇怪。。。。。。。
琢磨了几个小时,终于有了点头绪:是不是加载资源接口问题,获取又是引擎问题,沿着这个思路,查看了cocos creator的官网文档教程,说是2.4后的版本接口需要手动升级,我明白了,可能就是加载资源接口问题,于是按照文档的指示,将cc.loader.loadRes替换成cc.resources.load,重新试了一遍,如下图
替换成cc.resources.load:
占用内存313.3M
占用内存也就几兆
每个电脑的配置不一样,以上截图不能用作内存分析,但是可以说明一个问题,就是新版本的cocos creator用老版本的资源加载接口,会使内存占用非常高,在此记录这个问题,具体原因暂不清楚,不知道除了声音之外,加载其它的资源是不是也一样占用内存非常高呢?后面有时间再研究,为了保险起见,慎用老版本接口。