iOS性能优化

来源:互联网 发布:mac实用软件 编辑:程序博客网 时间:2024/06/06 01:15

1、用ARC管理内存

2、使用reuseIdentifier

3、避免庞大的XIB

加载一个XIB时候,所有内容都被放在了内存里,包括任何图片。如果有一个不会即刻用到的view,这样就是在浪费宝贵的内存资源。storyboard仅在需要时实例化一个viewController,但在app需要适应iOS5之前的设备或者自定义可重用的view时不可避免的要用到xib,这时就要使它men斤两简单,每个viewcontroller配置一个单独的XIB,尽可能的把一个viewController的view层次结构分散到单独的XIB中去。


4、不用block主线程


5、在imageViews中调整图片大小

在运行中缩放图片时很耗费资源的,特别是UIImageView 嵌套在UIScrollView   中的情况下。如果是bundle中的图片,你应该保证图片大小和 UIImageView大小相同;如果是远端服务器加载,最好在下载完成后用background thread缩放一次。


6、重用和延迟加载Views

更多的view意味着更多的渲染,也就是更多的CPU和内存消耗,这时我们就需要模仿UITableView UICollection的操作:不要一次创建所有subview,需要时才创建,当它们完成了使命,就把它们放到一个可重用的队列中。

例如,点击按钮显示一个view的场景:可以创建并隐藏,当需要加载时显示它,这样需要创建一个view并保持到不再使用,这样会更加消耗内存,不过用户体验较好。

另一种是当需要时才创建并显示,这样消耗内存少,但是点击时比上一种稍显卡顿。


7、使用Cache

8、权衡渲染方法

9、处理内存警告

10、重用大开销的对象

一些objects初始化很慢,比如NSDateFormatter 和 NSCalendar,但又要经常使用它们,这就需要重用他们,可以通过添加属性到class里或者创建静态变量来实现。

11、避免反复处理数据

12、选择正确的数据格式

13、正确的设定Background Images

14、减少使用web特性

UIWebView用来展示网页内容或者创建UIKit很难做到的动画效果很简单。但UIWebView驱动较慢,要提高性能就调整下HTML,首先尽可能移除不必要的javascript,

避免使用过大的框架,能用原生的js 就更好了。尽可能异步加载例如用户行为统计Script这种不影响页面表达的javascript。


15、优化tableView

16、选择正确的数据存储选项

17、加速启动时间

18、使用Autorelease Pool

19、选择是否缓存图片

20、尽量避免日期格式转换


21、使用正确的collection

选择对业务场景最合适的类或对象是能写出能效高代码的基础。

常见collection的总结:

Arrays:有序的一组值。使用index查找很快;使用值查找很慢,查找删除很慢。

Dictionaries:存储键值对。用键查找比较快。

Sets:无序的一组值。用值查找很快,插入删除很快。


22、打开gzip

大量app依赖于远端资源,网络的状况不能保证,所以需压缩。减小文档的一个方式就是在服务器和app中打开gzip,对于文字这种具有高压缩率的数据有更显著的作用。

iOS在NSURLConnection中支持了gzip压缩,AFNetworking这些基于它的框架也支持。


0 0
原创粉丝点击