古いアプリを 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
が、appDelegate が問題です。ビュー コントローラーを切り替えるたびに、(ビュー コントローラーをインスタンス化する必要があるか、既に存在するものを再利用する必要があるかに関係なく) 時間の大半を費やします。
window.rootViewController = myViewController;
メソッドが表面的に何をするかは知っていますが、カバーの下で何が起こっているのかわかりません...何が原因で遅くなり、スピードを上げるために何ができますか?
編集:ストーリーボードを自動レイアウトから外そうとしましたが、問題は消えました(もちろん、UI レイアウトは混乱しています)。したがって、明らかな結論は、自動レイアウトに関するものです。私はおそらく 70 弱のビューを画面上にすべて組み合わせており、それらをレイアウトするために必要なさまざまな制約があります。自動レイアウトがそれほど遅いとは信じがたいです (自動レイアウトがオフの場合の約 80 ミリ秒から、自動レイアウトがオンの場合の約 1370 ミリ秒まで)。