2011-02-28 18 views
0

私のiPadライブストリーミングアプリでは、私は2つのスレッドを使用しています。 1つはネットワークデータを収集して解析するためのもので、もう1つは描画ロジック用です。私は数分後に、次のエラーを取得しています:ipadアプリでmmapエラーを解決する

malloc関数:* MMAP(サイズ= 2097152)が失敗しました(エラーコード= 12) エラー:地域 を割り当てることができません*にmalloc_error_breakにブレークポイントを設定 *をデバッグ
私の質問は、どのようにこのエラーが来るのですか?それはどこから来ているのですか?そして私はそれをどのように解決するべきですか?
ありがとうございます。

答えて

0

楽器ツールを試しましたか?これは、問題が何であるかを絞り込み、修正が必要なだけのリークであれば、一般的にメモリが不足しているか、または別のものがうまくいかない場合に役立ちます。

メモリが不足しているように聞こえるので、メモリが必要なように見える場合は、おそらくwierdnessの部分は連続したメモリが不足している可能性があります。私はあなたがマルチスレッドのalloc/deallocsをやっているのと同じように断片化混乱に簡単に遭遇することができると言及しています。できるならばメインスレッド外のallocsを最小限にすることをお勧めします。

はすべてそれに失敗する(私はiOSのは、メモリの仮想化を行う場合、いくつかのHWはこれを避けるためにすることができますが、それは念のために言及する価値があると思ったように私にはわからないんだけど認めざるを得ない)、おそらくそれだけでオブジェクトのロックの問題ですスレッドごとに複数のallocを実行している場合は?どのような場合には、起動する前にこの2Mbブロックをスレッドに事前割り当てする方法がありますか?

関連する問題