作家
登录

iOS如何进行优化项目?

作者: 来源: 2017-07-31 08:31:53 阅读 我要评论

可以应用PLCrashReporter或者KSCrash库解析崩溃日记并符号化,再上传至后台,本身做收集加统计,顺带提一下,我们应用了PLCrashReporter,后端应用了Laravel,很便利的开辟了一套简单的崩溃及各类机能参数收集的体系,所以如不雅要自建,可以推敲这个组合

  • CocoaPods

  • CPU、内存、FPS记录及保存

  1    `CPU`、`FPS`、`Memory占用`网上都有现成的办法获取到这三个参数,这三个属于机能监控,可以准时记录,比如10S记录一次到本地文件中,每次打开App上传昨天的日记。这就要本身制订日记上传的策略了
  • 卡顿日记收集

    用户能感触感染到的卡顿一般都是因为在主线程做了耗时操作,举几个会产生卡顿的例子:

  1. viewDidLoad中 for轮回中初始化10000个UILabel实例

  2. cellForRow代劳办法中手动休眠usleep(100*1000)

若何监听这些事宜呢?查看下源代码,核心办法CFRunLoopRun简化后的逻辑如下:

  1.     int32_t __CFRunLoopRun() 
  2.     //通知即将进入runloop 
  3.     __CFRunLoopDoObservers(KCFRunLoopEntry); 
  4.   
  5.     do 
  6.     { 
  7.         // 通知将要处理timer和source 
  8.         __CFRunLoopDoObservers(kCFRunLoopBeforeTimers); 
  9.         __CFRunLoopDoObservers(kCFRunLoopBeforeSources); 
  10.   
  11.         __CFRunLoopDoBlocks();  //处理非延迟的主线程调用 
  12.         __CFRunLoopDoSource0(); //处理UIEvent事宜 
  13.   
  14.         //GCD dispatch main queue 
  15.         CheckIfExistMessagesInMainDispatchQueue(); 
  16.   
  17.         // 即将进入休眠 
  18.         __CFRunLoopDoObservers(kCFRunLoopBeforeWaiting); 
  19.   
  20.         // 等待内核mach_msg事宜 
  21.         mach_port_t wakeUpPort = SleepAndWaitForWakingUpPorts(); 
  22.   
  23.         // Zzz... 
  24.   
  25.         // 大年夜等待中醒来 
  26.         __CFRunLoopDoObservers(kCFRunLoopAfterWaiting); 
  27.   
  28.         // 处理因timer的唤醒 
  29.         if (wakeUpPort == timerPort) 
  30.             __CFRunLoopDoTimers(); 
  31.   
  32.         // 处理异步办法唤醒,如dispatch_async 
  33.         else if (wakeUpPort == mainDispatchQueuePort) 
  34.             __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__() 

      推荐阅读

      从交通三元素看高德易行新平台

    “高德易行平台的上线,标记住高德地图在交通出行计谋进级上迈出了重要一步。其实交通在我看来竽暌剐三元素,就是人、车和路,它们构成了交通核心的关键词。将来高德将以易行平台与交>>>详细阅读


    本文标题:iOS如何进行优化项目?

    地址:http://www.17bianji.com/lsqh/36461.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)