在iOS应用当中,如果imageView显示的图片尺寸与frame的大小不一致,会出现图片的拉伸,使用Xcode提供的misAligned images功能可以清楚的看出哪些图片被拉伸了。
图片拉伸对App性能到底有多大影响呢?
测试案例
为了找到答案,我测试了4组数据:
1.100个30*30 ImageView加载30*30图片
2.100个30*30 ImageView加载20*20图片
3.100个20*20 ImageView加载30*30图片
4.100个20*20 ImageView加载20*20图片
然后统计了加载性能以及图片解码性能,总结如下表格所示:
| 加载图片方式 | 加载图片资源耗时 | 图片解码耗时 |
| 30*30加载30*30 | 46 | 8 |
| 30*30加载20*20 | 49 | 5 |
| 20*20加载30*30 | 45 | 7 |
| 20*20加载20*20 | 50 | 4 |
在测试的过程中发现misAligned images对CPU基本没有性能影响,CPU处理的工作还是资源加载以及图片数据的解码,图片的拉伸工作应该是交给了GPU去完成。
然后通过对FPS进行测试发现,misAligned images对GPU的使用率并没有出现明显的提升,总的来看,misAligned images对App性能影响有限。