0

コアデータを使用しています。そこから、10000以上のデータを取得しています

NSOperation を使用して、UITableView に膨大なデータを表示しています。

しかし、XCode Instrumentsでわかるように、メモリ使用量が増え続けています

それが理由です。クラッシュ アクティビティはシミュレータではなくデバイスにあります。

これについてコメントしたい人はいますか?

4

2 に答える 2

1

一度に 10000 個のオブジェクトを取得しないでください。

NSAutoreleasePool を使用し、一定の間隔でプールをフラッシュします (間隔はテストで決定されます)。

N 反復ごと:

  1. コンテキストを保存します
  2. コンテキストをリセットする
  3. プールを空にする

これにより、インポート中のメモリ使用量が抑えられます。

于 2010-11-09T14:01:34.550 に答える
0

シミュレーターは、Mac のメモリを使用するため実質的に無制限のメモリを備えているため、ハード ドライブにスワップすることもできます。iDevice の反対側のメモリは非常に限られています。

あなたの説明から、あなたが間違っていることは明らかではありません。それを分析するのはあなた次第です。Instruments を使用すると、すでに順調に進んでいます。Instruments の「ヒープショット分析」を使用して、アプリケーションでメモリ リークが発生している場所を見つけます。最近、 bbumはその使用方法について素晴らしい記事を書きました。 to-find-undesirable-memory-growth/ . Apple のエンジニアによる WWDC の素晴らしいビデオもあり、見る価値のあるインストゥルメントの使用について説明しています: http://developer.apple.com/videos/wwdc/2010/

于 2010-11-09T07:40:30.793 に答える