美文网首页
一次iOS页面响应慢调优的经历

一次iOS页面响应慢调优的经历

作者: 闻人云鹤 | 来源:发表于2017-05-05 16:01 被阅读0次

    1,�业务场景,

    tableview点击cell后,过很久才响应进入详情页,之前一直忙于开发,也没时间管这块,而且这块功能维护的人过多,所以具体也不知道是谁加了什么后导致的卡顿,所以一直没处理这个问题,不过却一直是我们的心头痛,最近相对不忙了些后终于要解决这块了。

    2,初步分析

    可能的原因:
    1.点击后,过很久才响应,也就是是从我的手指点击到didSelect方法执行,需要较长时间
    2.viewDidLoad方法中在主线程进行了过多的耗时操作
    3,viewWillAppear��方法中在主线程进行了�过多耗时操作

    3,着手排除原因

    1,把跳转的代码注释掉,直接在didSelect中提示消息就行了,发现每次一点击就提示消息,所以原因1排除
    2,在DidSelect ,viewDidLoad,viewWillAppear,viewDidAppear,�方法开始和结束分别时间,发现在viewDidLoad中�从开始到结束竟然长达2S!这在高性能的iphone身上是不能忍的问题,于是开始分析viewDidload方法中的耗时操作

    4,找到响应慢的原因

    对viewDidLoad中的各种方法进行检测了,发现最耗时的是下面这个,


    29B032B1-42B2-472B-81EA-B97E83327138.png

    去函数中仔细查看,最后把问题�定位到其中一个函数上:


    0930970B-396F-43E5-96E2-08259813AED2.png
    原来是大量的图片加载放在了viewDidload的时候在主线程中执行,但是是IO操作肯定是比较耗时的,而且这里还是大量的重复操作。

    5,解决问题

    将图片的加载放在异步线程,然后主线程reloadData,修改完毕后执行,然后首次进入详情页的响应速度明显变快,问题解决。

    后记

    �性能调优的地方可以很多,这里只是记录自己一次的调优经历,这次是根据代码的经验,一些判断,加上时间的比较就解决了,当然还有instrument工具的使用,对于调试是很方便的,以前也帮助我解决了一个很难解决的问题,有时间的话也会写出来跟大家分享。

    相关文章

      网友评论

          本文标题:一次iOS页面响应慢调优的经历

          本文链接:https://www.haomeiwen.com/subject/aqopzttx.html