2011-01-24 5 views

答えて

5

メインスレッドでできるだけ少なくします。 NSOperations/GCDやその他のバックグラウンドテクニックを使用して、メインスレッドからすべてをロードします。他のすべての人は言った:

2

大量の画像/動画/音声ファイルを使用したり、使用されていないオブジェクトを初期化したり、できるだけ解放したりしないでください。

2

UITableViewを使用している場合は、事前にすべてのデータを準備し、tableView内の関連するモデルクラスインスタンスから取得することを確認してください。cellForRowAtIndexPath:委任メソッド - そうしないと応答性が失われます。

また、適切なことを行い、提供されたUITableViewでdequeueReusableCellWithIdentifierメソッドを使用していることを確認してください。

5

あなたの質問は一般的ですが、答えは "メモリ管理"です。

ここまでの回答はすべてこのカテゴリに該当します。メディア(ビデオ、オーディオ、写真)を再生しているか(UITableViewを使用して)データを表示しているかにかかわらず、低メモリを最適化する必要があります。

トリックは、いつでも必要なものだけをロードすることです。

また、GCD。

+1

+1私のUITableViewの答えではありますが、ユーザーインターフェイスの応答性も大きな問題です。 –

+0

高レベルの質問ですが、可能な限り速くなるように物事を学ぶ必要があります。すべての答えは私に役立ちます:-) –

+2

実際には、その反対はしばしば真です。大量のメモリを使用して、多数のオーディオ波形、ビットマップ、プレビュー画像などを事前にステージングまたはキャッシュして、インスタント(ロードまたは描画時間なし)の近くでUIでプレゼンテーションを行うことができます。プレロードやプリレンダリングが多いほど(バックグラウンドで遅れているかもしれません)、ユーザーが見る時間が少なくなります。速度のために、OSがこのキャッシュのためにあなたにできるように多くのメモリを使用してください。 – hotpaw2

2

メインUIスレッドで実行されるすべてのメソッドと関数をプロファイルし、すべて(サブルーチンとデリゲートを含む)が実行ループに完全に終了するまでに16ミリ秒未満を取るようにします。これらのUIメソッドとともに、すべてのUI図面更新が16 mS以下であることを確認してください。その後、UIは60fps(現在のデバイスで可能な限り最大)で実行でき、入力イベントを見逃すことはありません。

他のすべての画像ロード、すべてのネットワークデータ転送、すべての処理などは、非同期で実行されるか、バックグラウンドスレッドで実行されます。

(そして、何他の皆はできるだけだけでなく... :)

1

使用コアデータを述べました。コアデータを使用するのが別の方法を使用する場合よりも悪いケースは見たことがありません。

関連する問題