1

当我使用“Leaks”(其中有一个 Object Alloc 部分)运行我的 iPhone 应用程序时,我的应用程序似乎适合内存分配。但是,当我仅使用 ObjectAlloc 工具运行它时,内存会随着应用程序运行其主计时器而稳步增加。(这是一个基于计时器的应用程序)。我不确定该相信什么。我只是想知道 ObjectAlloc 工具是否有任何可能与我有关的问题。也许与 NSTImer 有关?我在设备(不是模拟器)上运行它。谢谢。

4

1 回答 1

1

是的——相信这些工具。这些天他们真的很准确。

泄漏是指一个对象或分配,其所述对象/分配的地址未存储在您的应用程序的其他任何地方。内存不再可访问。

但是,消除所有泄漏并不意味着您的应用程序不能无限制地增长。

由于多种原因,可能会出现无限增长。您可能有一个缓存,它不断添加条目而不修剪最近最少使用的条目。或者可能是一个永远不会被截断或刷新到文件系统的事务日志。或者,您可能会继续将新图像加载到您的应用程序中,而不会丢弃旧图像。

消除所有泄漏后,查看 ObjectAlloc 的输出并找出所有内存分配的来源。特别是,您需要弄清楚您的应用程序正在做什么来触发分配。如果您的应用程序直接或间接要求消耗资源,系统框架不会虚假地导致持续增长。

于 2010-03-02T05:21:54.440 回答