検索

ホームページ  >  に質問  >  本文

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

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

ringa_leeringa_lee2780日前556

全員に返信(1)返信します

  • 怪我咯

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

    Aspectsgithub で試してみる

    返事
    0
  • キャンセル返事