少し使用すると、アプリ全体が非常に応答しなくなることに気づきました。私は機器を開いて、主にメモリとCPU使用率についていくつかのテストを行うことにしました。私のアプリをTwitterアプリと比較しましたUITableView
。これは、私のアプリと同じように、tableViewの画像と画像の両方を使用しているためです。私は楽器にまったく慣れていないので、iPhoneがどのように機能するかについての私の非常に基本的な理解を使用して、すべてが何を示しているかを理解する必要がありました。
両方のアプリが驚くほど似ていたので、私のメモリ使用量は問題ないようです。たくさん使用した後の私のアプリは、この段階では非常に遅れています:実メモリー:55.63、仮想:152.03。Twitter:リアル:58.42、バーチャル:192.89。Twitterアプリは、より多くのメモリを使用しているにもかかわらず、それでも本当に応答性が高かった(私は超応答性とは言えないが、それでもいくつかのジャンプの瞬間があった)。これを閉じた状態で、CPUに移りました。
今、これはそれが奇妙になるところです。Twitterアプリは非常に少量のCPUを使用します(私のアプリよりも少し集中的ですが)。何も起こらない場合、CPU使用率は約0%に低下します。それは数回跳ね上がりました、そしてこれはアプリが少し遅れたときと一致しました。しかし、私のアプリは巨大なCPUを大量に消費します!何も起こらないとき、私のアプリは使用済みCPUの100%、つまり約80%-100%を使用します。つまり、Activity Monitor Instrumentのバーを読み取るとき、UITableView
がアイドル状態のときにシステム負荷が減少していません。これは、Twitterアプリが行っていたことです。
したがって、これがアプリが応答しなくなったり遅れたりする理由であると判断しました。問題は、これを改善する方法がわからないことです。
これは私が考えることができるものです:
-私は非同期ネットワーク要求の全負荷を行います。ただし、これは、要求が通常1秒以内に実行され、JSONがダウンロードされてすぐに解析されるため、CPU使用率が上昇したままになる理由を説明していません。
-個々のネットワーク要求がすべて完了した後、TableViewをリロードします。ただし、上記のように、これは最後のJSONのダウンロードと同時に完了するため、CPU使用率が急上昇する理由はありません。
-セル構成で大量の計算が行われました。ただし、前の2つと同じように、あまり説明していません。
高負荷に切り替えてもUIViewController
高負荷が残ります。はUIViewController
開始ビューコントローラーであり、アプリが最初に起動したときの負荷は0%で、無期限に0%のままです。負荷は負荷がかかったときにのみ跳ね上がりUITableViewController
、その後は上記のように残ります。したがって、この膨大なCPU使用率はから発生する必要がありUITableViewController
ます。
誰かアイデアはありますか?テキストの巨大な壁でごめんなさい。コードを投稿する必要がある場合は、質問してください。
助けてくれてありがとう、
よろしく、
マイク