9. iOS开发优化

省电

  • 如果使用定位,需要在定位完毕之后关闭定位,或者降低定位的频率,不停的定位会消耗电量。

  • 如果使用蓝牙,需要使用的时候再开启蓝牙,用完之后关闭蓝牙,蓝牙也很耗电。

  • 优化算法,减少循环次数,大量循环会让CPU一直处于忙碌状态,特别费电。

  • 尽量不要使用网络轮询(心跳包、定时器),推荐使用推送。

  • timer的时间间隔不宜太短,满足需求即可。

  • 不要频繁刷新页面,能刷新1行cell的最好刷新一行,尽量不要reloadData

  • 线程适量,不宜过多。

性能优化

  • 避免使用庞大的XIB、Storyboard,尽量使用纯代码开发界面,尤其对于App启动界面、首页。

  • 使用懒加载的方式延迟加载界面。

  • 避免反复处理数据。

  • 避免使用NSDateFormatterNSCalendar

  • 图片缓存的取舍UIImage加载图片方式一般有两种:A.imagedNamed初始化、B.imageWithContentsOfFile初始化二者不同之处在于,imageNamed默认加载图片成功后会内存中缓存图片,这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象.如果缓存中没有找到相应的图片对象,则从指定地方加载图片然后缓存对象,并返回这个图片对象.而imageWithContentsOfFile则仅只加载图片,不缓存.大量使用imageNamed方式会在不需要缓存的地方额外增加开销CPU的时间来做这件事.当应用程序需要加载一张比较大的图片并且使用一次性,那么其实是没有必要去缓存这个图片的,用imageWithContentsOfFile是最为经济的方式,这样不会因为UIImage元素较多情况下,CPU会被逐个分散在不必要缓存上浪费过多时间.使用场景需要编程时,应该根据实际应用场景加以区分,UIImage虽小,但使用元素较多问题会有所凸显。

Last updated