美文网首页
APP的内存优化和性能优化

APP的内存优化和性能优化

作者: BigBossZhu | 来源:发表于2016-11-09 23:11 被阅读43次

    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绘制四周透明图片.或异步绘制.

    相关文章

      网友评论

          本文标题:APP的内存优化和性能优化

          本文链接:https://www.haomeiwen.com/subject/tevtpttx.html