search

Home  >  Q&A  >  body text

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

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

ringa_leeringa_lee2776 days ago550

reply all(1)I'll reply

  • 怪我咯

    怪我咯2017-04-18 09:57:22

    AspectsTry it on github

    reply
    0
  • Cancelreply