缓慢UIViewController加载时间(慢ClientState警告)

由于我将旧应用程序转换为iOS 6,因此我开始在控制台中收到以下消息。

WARNING: Slow defaults access for key ClientState took 0.023656 seconds, tolerance is 0.020000

除了将我的代码从iOS 5更新到iOS 6之外,我还切换到了自动布局。 我运行过Instruments / Time Profiler和我的rootViewController中的rootViewController是问题所在。 每次我切换视图控制器时,它都会占用大部分时间(无论是否需要实例化视图控制器或重新使用已存在的视图控制器)。

window.rootViewController = myViewController;

我知道这种方法的表面效果如何,但我不确定在封面下会发生什么......现在会导致速度变慢,我能做些什么来加速它?

编辑:我试图把我的故事板关闭自动布局和问题消失(当然我的用户界面布局是在混乱)。 所以明显的结论是,这是关于自动布局的。 我可能只有70多个视图都结合在屏幕上,并将各种约束放在一起。 我很难相信自动布局的速度要慢得多(自动布局关闭时约80ms,自动布局开启时约1370ms)。


屏幕上有70个视图听起来很像! 我的建议是以某种方式简化它

  • 你真的同时需要所有70个观点吗?

  • 检查所有视图是否需要自动布局,并尽可能将其删除

  • 有些视图可以被图形取代吗? 我已经使用了例如阴影的视图,可能是图像
  • 你可以将storyBoard分成几个小小的,例如登录,细节,编辑模式等。部分缓慢可能来自系统不得不处理(太)大storyBoards。


    考虑用2个视图控制器创建一个新项目并测试切换速度。 每个iOS应用程序都有一个窗口,一个根视图控制器和一个视图控制器。 问题不可能像你期望的那样狭窄和明确。 每个视图控制器加载了什么? 你检查了底层代码吗? 应用程序委托是否在初始化或更改根视图控制器时执行任何操作?

    链接地址: http://www.djcxy.com/p/11707.html

    上一篇: Slow UIViewController load time (slow ClientState warning)

    下一篇: Pros and cons of using memcached for PHP sessions