APP的内存优化和性能优化

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,552评论 25 708
  • 文/我叫o泡 每次回家都是说走就走,从来不需要什么理由,只是因为想家了,想家里的她了。正好今天回来赶上逢场,来来往...
    我叫O泡阅读 638评论 2 8
  • 这里远离城市的纷扰,云雾缭绕,似一个童话世界。 蓝天,白云,层叠的青山,远与近,深与浅,这是色彩的碰撞。 有人下山...
    潇湘穆儿阅读 404评论 8 1