CPU优化
1.尽量使用轻量级对象,比如没有交互之类的可以考虑使用CALayer取代UIView
2.不要频繁的去调用UIView的相关属性,比如bounds、frame、transform等
3.尽量一次性计算出布局,不要频繁的去改变布局
4.AutoLayout会比frame更消耗cpu资源
5.图片尺寸最好和UIImageView大小一致
6.控制子线程最大并发数
7.耗时的操作放在子线程中处理
GPU优化
1.避免在短时间内显示大量图片,尽可能讲多张图片合成一张图片来显示
2.GPU能处理的图片最大的纹理尺寸为4096x4096,超过这个尺寸就会占用CPU的资源来处理,图片尽可能不要超过这个尺寸
3.尽可能减少视图的层级
4.尽可能减少透明视图
5.尽可能避免离屏渲染
离屏渲染为什么会耗费性能?
1.触发离屏渲染的操作本来就很耗费性能
2.离屏渲染会新开辟一个缓冲区
3.离屏渲染的过程中会多次切换图形上下文,它会将图形上下文从当前屏幕(onScreen)切换到离屏(offScreen),等到离屏渲染结束后会将渲染的结果显示在当前屏幕,又会将图形上下文从离屏切换到当前屏幕
哪些操作会造成离屏渲染?
1.光栅化 layer.shouldRasterize = YES
2.阴影 如果设置了shadowPath 则不会产生离屏渲染
3.遮罩 layer.mask
4.圆角 同时设置 layer.masksToBounds = YES 以及 layer.cornerRadius > 0
网友评论