耗电优化最终目的:通过尽可能降低CPU、GPU功耗来降低手机电量消耗。

  (1)尽可能少用定时器;

  (2)优化I/O操作(所谓的I/O操作也就是文件操作,我们简称为I/O操作。怎么优化呢?尽量不要频繁写入小数据,最好批量一次性写入。读写大量主要的数据时,考虑用dispatch_io,其提供了基于GCD的异步操作文件I/O的API。用dispatch_io系统会优化磁盘访问);

  (3)数据量比较大的,建议使用数据库(SQlite、CoreData);

  影响耗电的几个方面:

  (1)Network : 网络活动会唤起需要长时间周期性供电的无线电模组,可以分批次进行网络请求,来降低开销.

  (2)Location :精密&高频的的定位会增加开销,需要按需使用.

  (3)CPU :CPU使用率超过20%就会快速耗干电池电量.高效使用CPU,并且当用户出现模糊输入时快速做出不做事情的反应.  

  (4)GPU :图形处理器(显卡的处理器),乱使用GPU会导致交互差,并且降低电池寿命.  

  (5)Background : 后台状态App仍会消耗电量,App要按需执行后台操作,并使用延迟APIs来保证系统运算高效执行.另外,在app进入后台状态是,立即减少动作,并且通知系统一次这些动作已经完成.

  1、网络优化

  (1)网络不可用,不要尝试执行网络请求;

func AlamofiremonitorNet() {let manager = NetworkReachabilityManager(host: "www.apple.com")manager?.listener = { status inprint("网络状态: \(status)")if status == .reachable(.ethernetOrWiFi) { //WIFIprint("wifi")} else if status == .reachable(.wwan) { // 蜂窝网络print("4G")} else if status == .notReachable { // 无网络print("无网络")} else { // 其他}}manager?.startListening()//开始监听网络}

  (2)让用户可以取消长时间运行或者速度很慢的网络操作,设置合适的超时时间

var timeoutSessionManager1:Alamofire.SessionManager = {let configuration = URLSessionConfiguration.default//请求超时时间15秒configuration.timeoutIntervalForRequest = 15return Alamofire.SessionManager(configuration: configuration)}()

  (3)如果多次请求的结果相同,尽量使用缓存。

  (4)尽量使用断点续传,否则网络不稳定的时候可能多次传输相同的内容。

  2、定位优化

  (1)如果不是导航的应用,尽量不要实时更新位置,定位完毕就关掉定位服务;

  (2)尽量降低定位精度,比如尽量不要使用精度最高的KCLLocationAccuracyBest;精度越高,硬件模块功耗越大;

  (3)对于用不到定位的,info.plist文件中不要有定位权限的相关字段。

  以上就是笔者自己优化时候,修改的地方。

【iOS】Instruments性能检测之耗电优化相关推荐

  1. 《iOS APP 性能检测》

    colawyeeqiu | 导语 最近组里在做性能优化,既然要优化,就首先要有指标来描述性能水平,并且可以检测到这些指标,通过指标值的变化来看优化效果,于是笔者调研了iOS APP性能检测的一些方法, ...

  2. ios APP性能检测

    转载至:Bugly 首先,要明确性能检测都需要关注哪些指标,笔者列举了以下几个主要的,后面会详细说: 启动时间 内存占用量,内存告警次数 CPU使用率 页面渲染时间,刷新帧率 网络请求时间,流量消耗 ...

  3. Instruments性能检测

    2019独角兽企业重金招聘Python工程师标准>>> 先来一发苹果官网上Instruments User Guide,其实没啥用,英语不好的也懒得去看.(反正我是看不懂) 关于In ...

  4. Android 性能优化(62)---存检测、卡顿优化、耗电优化、APK瘦身——详解篇

    Android 性能优化,内存检测.卡顿优化.耗电优化.APK瘦身--详解篇 自2008年智能时代开始,Android操作系统一路高歌,10年智能机发展之路,如今 Android 9.0 代号P  都 ...

  5. iOS性能优化 - 耗电优化

    耗电来源: CPU处理: 网络: 定位: 图像. 如何优化: 1. 尽可能降低CPU.GPU功耗; 2. 少用定时器: 3. 优化I/O操作: 尽量不要频繁写入小数据,最好批量一次性写入: 读写大量重 ...

  6. IOS性能检测工具-Instruments

    [原文]使用 Instruments 做 iOS 程序性能调试 Instruments 简介 Instruments 是 Xcode 的一个工具集,为我们提供了强大的程序性能分析及测试能力.使用 In ...

  7. iOS性能优化篇 —— 耗电优化总结

       手机App耗电的主要来源有以下四个因素: CPU处理,Processing 网络,Networking 定位,Location 图像,Graphics 耗电优化最终目的:通过尽可能降低CPU.G ...

  8. iOS性能优化06 - 耗电优化

    耗电的主要来源 CPU处理,Processing 网络, Networking 定位,Location 图像,Graphics 耗电优化的几条建议 尽可能降低CPU.GPU功耗 少用定时器 优化I/O ...

  9. iOS app性能优化的那些事

     iPhone上面的应用一直都是以流畅的操作体验而著称,但是由于之前开发人员把注意力更多的放在开发功能上面,比较少去考虑性能的问题,可能这其中涉及到objective-c,c++跟lua,优化起来相对 ...

最新文章

  1. 刚刚,2021泰晤士高等教育亚洲大学排名出炉
  2. 部署Ceph集群(块存储,文件系统存储,对象存储)
  3. python调用kafka拉取数据失败_无法使用kafkapython从另一个容器向Kafka容器发出请求...
  4. hda: status timeout: status=0xd0 { Busy }报错解决!
  5. Go语言中cannot convert adminname (type interface {}) to type *: need type assertion的解决办法...
  6. php scandir sftp,CentOS 下使用SFTP实现网站自动生成FTP账号,实现Chroot功能
  7. 阿里文娱技术专家战獒: 领域驱动设计详解之What, Why, How?
  8. Git—代码管理、提交及冲突解决流程的思考
  9. JavaScript浏览器对象模型
  10. UGUI的Drag实现鼠标拖拽
  11. poi数据导入arcgis_在Excel中处理和使用地理空间数据(如POI数据)
  12. 昂达vi40精英版刷Linux,昂达Vi40精英版V1.0固件专业网友实测
  13. drupal html5,基于Drupal 7HTML5布局模板二次开发.doc
  14. 基于qt linux的视频监控,基于Qt和OpenCV的无线视频监控系统
  15. 数据库中如何求候选码
  16. 【相濡以沫、相忘于江湖】
  17. 浓淡相宜间,是灵魂的默契;
  18. 证券公司信息化5-我国证券公司交易系统的演化过程和主要阶段是怎样的?什么是卫星报盘系统?
  19. snmp连接工具_运维工程师不可错过的2020年值得关注的综合性网络监控工具
  20. python类中的特殊方法_python类中的特殊成员方法介绍

热门文章

  1. 科大讯飞发布10款AI行业工具和4个AI应用场景新品
  2. 使用文心大模型ERNIE-ViLG生成图片
  3. 头歌答案Python,001
  4. win7怎么设置路由器连接到服务器未响应,路由器连接不上Win7系统电脑的解决方法...
  5. android算命大全,善奇命理(善奇命理网我的测算)V1.5.4 安卓免费版
  6. 写给正在读研一的自己----------------通过大佬总结的一些阅读文献的方法与受益匪浅的习惯(令人引起共鸣的想法)
  7. DWG文件打开很卡怎么办?一招叫它“瘦身”成功~
  8. 浙江七选三计算机专业分数,重磅:浙江省属43所高校2020年“三位一体”综合评价录取分数线汇总...
  9. 【RDD】Transformations
  10. 华为云计算学习:计算虚拟化基础1