APP的内存优化和性能优化

2016-11-09  本文已影响43人  BigBossZhu

APP的内存优化和性能优化

先把项目上线调试出现bug搞一下.没仔细看

内存优化
  1. Assets.xcassets的使用和优缺点
      1. 视图资源管理工具,启动图标和appIcon需要使用png格式,其他图片可以使用其他格式的图片,导出不要后缀,但是其他路径下其他格式格式图片需要后缀.并且使用的图片不会被直接释放掉,而是缓存起来.使用
  2. PDF和1x,2x,3x有什么区别??PDF为矢量图,可以无损放大.(为深入研究矢量图)

app的瘦身主要不就是针对app的.ipa安装包优化.
分析下安装包的目录
资源层面:
1. assets.car:项目.xcassets压缩包
2. image:图片资源文件
3. video和audio
代码层面:
1. Xib && SB:编译后的文件
2. Yep:项目的可执行文件
3. .framework:库
所以能够从资源层面或者代码层面入手.
资源层面:可以分为Local和Remote.
优化1:按需家在资源,做好缓存策略后,把非必须的资源文件都放在服务器上面.但是启动图片和应用图片变是必须文件当然还有其他的一些.

优化2:因为现在基本不用适配1x图片的屏幕,可以删除,采取拖得方式,图片只包含2x,3x.能够减少%35图片资源消耗.但是耗费的性能(CPU),不建议使用..
怎么减少性能消耗.iOS9.0引出App Slicing:App Store会根据不同的设备准备不同的安装包.每个安装包只有响应尺寸的图片(如iPhone6s只会去下载2x图片到安装包),但是这个功能的前提是需要.xcassets去管理.

优化3:HTML5基本使用WKWebView来实现,也是可以优化的.
* 1. 让前端给最小的包,内置到app.
* 2. 所有的图片,所有的页面Remote化.

优化4:资源文件重复问题,图片名字相同通过.xcassets可以去重.可以使用LSUnusedResources将代码中没有用到的文件删除.

启动图:使用launchScreen.sb就不用这么多张图了.弄一张pdf启动图就可以了.

  1. 去重复资源,不用资源.
  2. 使用.xcassets管理.使用pdf高于png.
  3. 非资源文件放在Remote上
  4. HTML5,Remote化.
  5. 去除无用代码.
性能优化
  1. 使用系统自带的instrments工具,作用:可以分析程序每个阶段的性能,找出耗时过多的地方进行检查优化.
  2. 不要再主线程上进行耗时操作,尽量在子线程上操作.
  3. 使用NSCache:线程安全,收到内存警告时,会自动删减缓存.
  4. 懒加载,用的时候才加载,减少内存消耗.
  5. 滑动的性能优化.
    1. 首先滑动会将runLoop模式改为UITrackingRunLoopMode,所以定时器需要改变运行循环的模式.不然无法滚动
    2. cell内尽量少的去创建View
    3. 绘制图片再异步进行等操作在异步进行,主线程更新.
    4. 少cornerRadius,shadows.修改阴影和圆角需要额外开辟一块缓存区进行渲染.消耗CUP和内存
    5. alphe,涉及图层操作,也会增大计算量
    6. lable阴影效果通过贝塞尔曲线绘制,能够提高效率.
图形内存原理
图形内存原理

7. 最好UI绘制四周透明图片.或异步绘制.

上一篇下一篇

猜你喜欢

热点阅读