iOS性能优化

线上用户的卡顿监控是使用RDM sdk来监控的,原理是通过RunLoop的几个Observer来确定主线程是否卡住了,具体原理请参考老谭笔记。当主线程的RunLoop执行时间超过3秒就会捕获所有线程的堆栈,然后上报给服务器。通过几个版本的使用,这种方法确实能够发现很多卡顿问题并且堆栈也很清晰,也便于我们定位问题。

除此之外,我们还结合RunLoop和用户点击流来监控页面的流畅程度。

比如下面这个统计就是首页四个tab切换的耗时统计:

当碰到这种页面切换卡顿时,我们会怀疑是不是随着用户的使用时间越多,本地存储的数据越来越多导致数据处理逻辑变慢的,因为我们进入每一个列表时都会在主线程读取本地数据来渲染,如果数据多就会卡。所以我们的做法是制造很多测试数据来进行压力测试,可以是向db插入测试数据,也可以拦截网络层返回测试数据,通过这种方式来确定是不是页面切换卡顿是否和数据量有关,如果是的话,会采取分页拉取,预加载等方式去优化,否则还需要获取详细的堆栈,这将会在后续补上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳明AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值