2

私は AppleTV で開発を行っており、ポスターをダウンロードするためのスレッドがあります。

私の最初のバージョンでは、[NSData dataWithContentsOfURL:...] を使用してこれを行い、システム メモリがすぐに使い果たされますが、メモリ リークはありません。

次に、coneybeare がこの投稿で推奨する ASIHTTPRequest に目を向けます。 memory-leak-problem-using-nsdata-in-iphone

状況は良くなりますが、まだメモリ不足です。

奇妙なことに、私のプロセスの常駐メモリは非常に低く安定していますが、システムの使用可能なメモリはどんどん少なくなっていきます。

vm_stat の出力は次のとおりです。

Apple TV:/var/log root# vm_stat
Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                     1012.
Pages active:                  22735.
Pages inactive:                11178.
Pages wired down:              16069.
"Translation faults":         600863.
Pages copy-on-write:           21787.
Pages zero filled:            559108.
Pages reactivated:              2922.
Pageins:                       15073.
Pageouts:                         11.
Object cache: 4 hits of 7781 lookups (0% hit rate)

Apple TV:/var/log root# vm_stat
Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                      973.
Pages active:                   4568.
Pages inactive:                11067.
Pages wired down:              16076.
"Translation faults":         602533.
Pages copy-on-write:           21881.
Pages zero filled:            559767.
Pages reactivated:              3529.
Pageins:                       15087.
Pageouts:                         11.
Object cache: 4 hits of 7784 lookups (0% hit rate)

これらの 2 つの出力は、非常に短い期間で取得されます。"Pages active:" に注意してください。約 18k ページがなくなっています。彼らはどこに行ったのですか?

PS。CoreGraphics と VideoToolBox でも同様の問題が見つかりました。つまり、システムが多くのメモリを占有し、それらを解放しないようです。CoreAnimation と VideoToolBox のキャッシュはありますか? はいの場合、これらのキャッシュをクリアするにはどうすればよいですか?

いくつかの更新: 1) BRMarqueeTextControl に関連しているようです。これは、CoreAnimation に基づくテキスト コントロールです。

2) BRMarqueeTextControl を単独で使用してもメモリの問題は発生しません。また、ポスターのダウンロード ジョブを単独で使用してもメモリの問題は発生しません。

3)これら2つが一緒になると、すぐにメモリが使い果たされます。

4

0 に答える 0