1.减少app所占内存(体积)
1.去掉不必要的库,类和代码
如下图,在使用高德地图的时候,如果用不到导航,就不要集成导航的SDK: AMapNavi(118M)
2. 可以提高性能的做法
1.对象的创建
- 尽量使用轻量对象,如能用CALayer的时候尽量不用UIView
- 敏感位置能不用XIB尽量使用纯代码手写
- 推迟同一时间创建对象,使用懒加载在需要使用的时候创建对象
2.布局计算
- UITableView布局计算,异步进行计算布局并缓存下来,当复用Cell时候直接调用缓存数据
3.图像生成
- CALayer的border,圆角,阴影,遮罩,CAShapLayer的矢量图形显示,通常会触发离屏渲染。
- 要UI来处理图片,避免使用圆角等
4.图片预加载和异步绘制
5.使用frame布局来替换约束布局
6.在设置CGRect时能只用Int的就不用用CGFloat和Double
3.相关概念
- 离屏渲染:iOS离屏渲染
- CPU(中央处理器)
对象的创建和销毁,对象属性的调整、布局计算、文本的计算和排版、图片格式转码和解码、图像的绘制(Core Graphics) - GPU(图形处理器)
纹理的渲染(OpenGL)
extension CGRect {
public static var zero: CGRect { get }
public init(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat)
public init(x: Double, y: Double, width: Double, height: Double)
public init(x: Int, y: Int, width: Int, height: Int)