如何高效的准确的获取一个工程所有控制器的 viewdidload 方法的执行时间?

先说说现在的做法,首先在启动时获取 objc_getClassList 获取项目中所有的类,然后看这个类是否有 viewdidload 方法,如果就 swizzle method,然后在替换的方法中间调原方法,前后记下时间,然后就可以获取方法的执行时间,这种做法有一个问题。如果项目中有很多控制器,在启动时就有大量的控制器需要交换方法,就会导致在早期的机型(5s)CPU 使用率过高,主线程卡顿的问题,而且多次启动后手机发热严重。我测了下方法的执行,发现瓶颈是在 method_exchangeImplementations(originalMethod, newMethod);这句又是系统的方法,想了一周,都没有想到好的办法。有没有别的办法的朋友?

阅读 2.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题