0

私はiPad用のアプリケーションを開発していますが、iPadのRAMで最大5.5MBを消費します。私はこれらすべてのものをInstruments何度も使用して確認しました。アプリがもう少しメモリを使用するとすぐに、メモリ警告がスローされ、アプリが異常な動作を開始します。

  1. did-receivememory警告でメモリを解放するためのコード行を実装しました。
  2. NO LEAKSまた、アプリ全体でそれを確認しました。
  3. アプリには少なくとも6MBのメモリが必要であることがわかりました。

これがアプリの一般的な流れです。

ログイン->1番目のリストビュー->2番目のリストビュー->3番目のリストビュー->4番目-マップとリストビュー->5.マップとリスト

各画面の概要。

  1. ログイン-username-pswdを使用したシンプルな画面で、Webサービス呼び出しを行い、ユーザーを認証します
  2. 認証の結果に基づいて、さらにいくつかのデータをフェッチし、最初のリストの表示画面に一覧表示します。
  3. 1番目のリストからの選択に基づいて、アプリは2番目のリストビューにリストをロードします
  4. 2番目のリストからの選択に基づいて、アプリは3番目のリストビューにリストをロードします
  5. 3番目のリストからの選択に基づいて、アプリはリストをロードし、マップには比較的ピンがあります。
  6. マップからの注釈に基づいて、アプリは別のマップと別のピンに移動します。

ここで、アプリは6番目の画面でメモリ警告を受け取ります。私はすべてのコーディング標準とすべてのオブジェクトのすべての重要性を保証しました。

上記の場合、すべての画面が非常に必要です。私はナビゲーションコントローラーを使用しており、ビューコントローラーを1つずつ押しています。重複なし-2回保証。

ここで重要なのは、アプリはiOS 4.1を搭載したiPad-1でテストされており、アプリのテストを開始する前にすべてのアプリが強制的に閉じられているということです。THOUGH、アプリはわずか5.5mbの使用量で警告を受け取ります。

私はプロジェクトマネージャーに、このメモリ使用量が多く、彼らが私に尋ねていることを納得させようとしました-MEMORYを設定するためのいくつかのオプションがあるはずです。この種のハイグラフィックスゲームとアプリはどのようにスムーズに実行されていますか?LIMITというAppleの適切なドキュメントが見つかりません。私には答えがありません。

メモリ制限を設定できない場合は、プロジェクトマネージャーに表示できるように、適切なPROOFリンクを提供するようにお願いしています。そのような設定が可能であれば、その方法を知りたいと思っています。

4

2 に答える 2

1

第1世代のiPadには、合計256MBのメモリが搭載されています。もちろん、その一部はオペレーティングシステム自体によって使用されます。

アプリケーションで少なくとも64MBが使用可能であると想定するのは非常に保守的です。したがって、6MBは私にはかなり最小限に聞こえます。より多くのメモリが割り当てられるように、アプリケーションが実行していることが必要です。

「私はゲームなので、より多くのメモリオプションを使用させてください」というものは絶対にありません。すべてのアプリケーションは、可能な限り多くのメモリを使用できます(ただし、メモリ使用量を最小限に抑えることは常に良い習慣です)。メモリが不足するとアプリケーションに通知され、メモリがなくなるとフォアグラウンドアプリケーションが終了します。

アプリケーションが終了した場合は、クラッシュログを調べて、使用していたメモリの量を確認してください。私の推測では、あなたはあなたが思っている以上に使っていることに気付くでしょう。

于 2012-07-08T19:12:45.987 に答える
1

iOSでのアプリのメモリ制限について、Appleドキュメントからの肯定的な声明が見つかるとは思えません。

しかし、「iOSアプリの利用可能なメモリ」をグーグルで検索すると、多くの情報が見つかります。たとえば、このSOスレッド

私の経験では、私のアプリは約20MBの「ピーク」メモリ使用量を維持できますが(デバイスの状態によって異なります)、アプリが強制終了されないようにするには、メモリ使用量が10MBのしきい値をすぐに下回る必要があります(6 -8MBがより正確な数値です)。ピークを十分な速さで「元に戻す」ことができないという理由だけで、アプリが強制終了される場合があります。

管理者に役立つ可能性のある情報の1つは、Instrumentsの「MemoryMonitor」ツールからの出力、特に「freephysicalmemory」です。これを使用すると、「空き物理メモリ」が(Instrumentsの出力に従って)指定された制限を下回り、残りのメモリがゼロに近づくと、アプリが強制終了されることが常にわかります。

さて、メモリを割り当てたため(割り当てツールまたはリークツールによって報告されます)、または他の要因(メモリにロードされたフレームワーク、iOSカーネル内の何か、またはInstrumentsによって追跡されないもの)が原因でその制限に達した場合は、知ることはできません。ただし、アプリを使用することで、デバイスの空き物理メモリが時間の経過とともにどのように変化するかを確実に追跡できます。

お役に立てれば。

于 2012-07-08T19:20:58.537 に答える