这段记忆在哪里消失了?

时间:2012-04-10 03:32:00

标签: ios memory tvos apple-tv

我正在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)

这两个输出随后在很短的时间内得到。 请注意“活动页面:”,大约18k页已经消失。 他们去哪儿了?

PS。我在CoreGraphics和VideoToolBox中也发现了类似的问题,也就是说,系统似乎会占用大量内存并且不会释放它们。是否有CoreAnimation和VideoToolBox的缓存?如果是,我该如何清除这些缓存?

一些更新: 1)它似乎与BRMarqueeTextControl有关,我认为这是一个基于CoreAnimation的文本控件。

2)单独使用BRMarqueeTextControl不会导致内存问题,单独的海报下载工作也不会。

3)当这两者结合在一起时,记忆很快就会消耗殆尽。

0 个答案:

没有答案