2

一度に大量のデータを処理する必要があります。そのため、BlocksまたはNSOperationQueueを使用します。処理するデータの量がメモリ制限を超えるまで、すべてが正常に機能します。これにより、アプリが即座にクラッシュします。

その理由は、私が処理しなければならないデータパッケージが約であるためです。100KB大きい。この操作の300〜400を超えるキューがキューに入れられると、メモリ制限を超えます。

さて、皆さんが同様の問題をどのように処理するか知りたいですか?ところで:同期されたタスクを追加しない限り、キューのサイズを制限する方法が見つかりませんでした。同期されたタスクを追加すると、戻る前にスタックが完了します。

ヒントを事前に感謝します。

4

1 に答える 1

1

NSOperation、ThreadPoolExecutorとほぼ同等です。だからあなたはすでにそれを使っています。メモリを使い果たしている場合は、同時実行方法はおそらく問題ではありません。

300〜400のタスク(NSOperations、またはGCDブロック)を構築していて、実行するにメモリが不足しているようです。追加するときに実行してみませんか?これが、ThreadPoolExecutorと同様に、NSOperationQueueおよびGCDキューの目的です。

于 2012-06-13T09:20:06.480 に答える