【iOS】一次切换tabbar卡顿问题的排查过程
2020-06-22 本文已影响0人
Loving_1109
问题
在某个版本后,当点击底部tababr切换页面的时候,从点击到切换成功会有一定的时间延迟,这个时间不是很长,但是,就是可以明确的感觉到一个卡顿。
- Time Profiler
首先想到的就是使用instruments里面的Time Profiler。分别在simulator和真机上测试,获取到tababr切换期间的CPU使用时间,发现一切正常,没有特别耗时的操作。
- 排查tabbar的问题
应用使用的不是系统自带的tababr,所以怀疑是tabbar的问题。那么,替换自定义的tabbar 为原生,发现问题还是存在。
- 排查viewController的问题
tabbar有五个viewController,想到可能是某个viewController里面做了什么操作,导致切换的时候卡顿。直接把第一个viewController替换掉,然后运行,发现卡顿消失。那就证明是这个viewController导致的问题,然后找到所属模块,定位具体问题。
- 排查具体修改
因为每次打包,我们都会保存那个版本对应的podfile.lock 文件。所以,排查方法就是找到版本的lock文件,然后在里面找到对应的模块的commiid,通过回溯代码到对应的commitid,然后找问题。
- 结果
排查结果就是,有代码在tabbar上面加了一个双击手势。所以当点击事件发生的时候,由于有双击手势的存在,所以系统会延迟一定时间,然后才会调用单击事件。