应朋友要做一个家具360展示的iPad App,故做了一些图片加载的效率测试。之前做AD杂志,也是遇到iPad加载图片速度不快的问题,特别是大图。
今天做了一些测试,本测试使用的是cocos2d类库。最终效果由5个层叠加而成:主背景层、壁纸层、地毯层、沙发层、茶几层,都是带透明通道的。
首先,用1920×1080图片进行测试,5层一套加载时间为2秒多。1层加载完成帧率是30,5层加载完成帧率8.6。
再次,用1024×768图片进行测试,5层一套加载时间为1秒多。1层加载完成帧率是30,5层加载完成帧率7.5。
以上为模拟器上测试,真机上测试结果差不多,但是帧率会高很多。采用单张图片即时load速度肯定跟不上,所以以下测试采用预load图片的方法进行测试。
用1024×768图片(每张图片500K左右)1层进行测试,预load内存到25M的时候内存不足,iPad中止。模拟器上因为没有内存限制,load好后非常流畅。
压缩图片到每张50K,用1层640×480带透明通道的图片拉大到1024×768,在真机上可以跑到60帧。但是当用2层640×480图片进行测试,发现内存急速增长,在内存使用达到20M的时候崩溃自动推出。说明,带透明图层不光会占用CPU资源,对内存资源也消耗巨大。在今年iOS开发者大会上,美国佬也是腔调了这一点,能关透明的时候尽量关闭透明,以增加帧率。
后缩小第二层图片的尺寸,内存还是几何型增长。最后放弃了多图层。
所以360展示,现在只能使用一张图片,而不能使用多图层叠加方式。