質問

ステータス101(メモリ不足、私は信じる)で約20分後にアプリがクラッシュする

Instrumentsを使用したデバッグ-ObjectAllocとLeaksでは、手がかりが得られません。 ObjectAllocグラフは、割り当ての正味数と同様に、約100万バイト(1MB)の一定レベルにとどまります。すべてのリークを取り除きました。

スレッドの数と関係があるのではないかと考えましたが、ObjectAllocでこれらをグラフ化すると、スレッドが一定であることがわかります。

誰かが別のツールの方向、または別の調査方法を教えてくれますか?

役に立ちましたか?

解決

Clangが検出したすべてを修正します。 LLVM Clang静的分析

他のヒント

システムによって割り当てられたオブジェクト(画像や音声などを含む)は、インストゥルメントで追跡されないことに注意してください(もちろん、最上位レベルのカウントは保持します)。たとえば、画像をロードすることは実行可能です。これは、ショーとしてのメモリ使用量にはあまり影響しませんが、実際のメモリを大量に消費する可能性があります!

これが和音に当てはまらない場合は、サブトラクティブデバッグアプローチを試すことができます-(プロジェクトのコピーを取る)機能のチャンクを切り取り、問題が解消するか、問題を再現できる最小のものを取得します。少なくともボトルネックがどこにあるかを見つけるのに役立つはずです。確かに、これは難しいでしょう。(a)テストするたびに20分ほど待たなければならないので(ただし、これをバックグラウンドプロシージャにすればそれほど悪くはない)、(b)メモリの問題の性質上、単一の原因ではないかもしれませんが、より小さい原因の重大な塊です。

がんばって!

Object Allocでの私の経験はそれほど素晴らしいものではありませんでした。アプリケーションで使用される実際のメモリが常に提供されるわけではありません。

代わりに、アクティビティモニターでObject Allocを使用します。必ず<!> quot; Physical Memory Free <!> quot;を使用してください。および<!> quot;使用される物理メモリ<!> quot;アクティビティモニターのオプション。これにより、アプリケーションが使用しているメモリ量が正確にわかります。

<!> quot; nice level <!> quot;とはどういう意味ですか。時間の経過とともに上昇しないのですか?合計メモリ量-電話が他のアプリのためにメモリを必要としている可能性があります。

エラーコード101は、iPhone OSがアプリを強制終了したことを意味します。アプリケーションでUIImageViewsを使用している場合、それらのメモリを管理するようにしてください。アプリケーションが10/12 MBを超えると、iPhoneが終了することがわかりました。

画像ビュー(または大きな画像)を使用していない場合、バックエンドコードがスペースを使い果たしています。

私が言えることは、割り当てをより注意深く見て、いつでもメモリに保持するビューを管理する必要があるということです。

Instrumentsでアプリケーションを実行し(Run-<!> gt; Start with Performamce Tool-<!> gt; Leaks)、メモリが割り当てられている場所を確認します。

これがお役に立てば幸いです!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top