CocosCreator中png和etc纹理所占内存测试

1 PNG和ETC的加载区别

1.1 PNG

PNG是一种图片压缩格式,并不能被GPU直接识别,CPU把PNG图片读取到内存后,还需要在内存中解码,转换成GPU能识别的数据格式,然后传送给GPU渲染。

整个过程所占内存是编码数据*1+解码数据*2,即原始PNG文件占一份,解码后的数据在内存和GPU各占一份。

2.1 ETC

ETC是一种能被GPU直接识别的压缩纹理格式,CPU把ETC压缩纹理读取到内存后,无需解码,直接传送给GPU渲染。
整个过程所占内存是压缩纹理数据*2

2 测试环境

  • CocosCreator 2.4.x
  • 构建Android包在真机上测试
  • 关闭纹理缓存,即 cc.macro.CLEANUP_IMAGE_CACHE = true,使加载后的图片内存及时释放。
  • 4种尺寸的图片:等于2048、小于2048、等于1024、小于1024,各使用4张不同的。

3 内存对比

3.1 加载PNG

3.1.1 长宽等于2048的图片

理论内存是16M。第一次加载完后,内存增加约32M,后面再加载了3张相同大小的不同图片,每次增加约16M。

为什么第一次会增加32M呢?在 cc.macro.CLEANUP_IMAGE_CACHE = true 的情况下&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值