2011-07-21 104 views
0

我一直在使用仪器检查我的程序中的泄漏和其他内存问题。虽然仪器发现的泄漏非常小而且无关紧要,但是我发现在使用该程序时,物理内存空间不断下降。iPhone内存管理

我使用内存监视器来确定我的应用程序使用了多少内存和分配来确定这主要发生在哪里。每次我分配或保留时,我总是确保释放,并且看到几乎没有任何泄漏,我假设我的内存管理很好。

有谁知道我可以做些什么来解决这个问题或建议一种方法来达到它的底部?

+6

任何泄漏事宜。 “勉强”不削减它,应该没有。 – MarkPowell

+0

同意@MarkPowell。在测试所有功能的情况下,程序的整个生命周期都不应该出现泄漏。将每个泄漏隔离到一段代码中,如果必须解决它,冲洗并重复,则用细齿梳通过它。一旦你将所有的泄漏插入,你可以重新评估是否有其他需要解决的问题,但是你必须从泄漏开始。 – Kongress

回答

1

即使你释放你不需要的对象,那并不重要。你可能会分配太多的东西,并由于某种原因保留它们。你可以尝试检查了这一点:

http://macdevelopertips.com/objective-c/objective-c-memory-management.html

http://akosma.com/2009/01/28/10-iphone-memory-management-tips/

我会建议你检查你保持你alloc和什么样的应用程序的生命,看看你能不能让同样的事情但没有使用太多的记忆。

编辑:我必须同意Mark和Kongress的说法,为了您的应用程序的生命,每个漏洞都是重要的。

+0

所以我设法改善了很多内存(虽然它还不完美)。我发现我遇到的两个主要问题是没有释放具有保留属性的指针,并且我使用UIImage imageNamed(并且我有数百个图像)缓存所有图像。 – Olshansk

+0

如果您需要更多帮助,请让我知道奥尔山斯克。 – Peres