在检查 Instruments Object Alloc 时,我的 CFArray 和 CFString 分配都变红了。
对象似乎还活着但没有被使用,这是因为在这两种情况下,直方图的使用部分是总直方图(已变为红色)的 1/10。
该应用程序是具有 7 个视图控制器的照片库应用程序。为每个单独的视图控制器加载缩略图,然后根据需要加载图像。只是在两个视图控制器之间来回移动会不断推动 CFArray 直方图。
让我知道在这里发布代码是否会有所帮助。
谢谢,P
在检查 Instruments Object Alloc 时,我的 CFArray 和 CFString 分配都变红了。
对象似乎还活着但没有被使用,这是因为在这两种情况下,直方图的使用部分是总直方图(已变为红色)的 1/10。
该应用程序是具有 7 个视图控制器的照片库应用程序。为每个单独的视图控制器加载缩略图,然后根据需要加载图像。只是在两个视图控制器之间来回移动会不断推动 CFArray 直方图。
让我知道在这里发布代码是否会有所帮助。
谢谢,P
发布代码总是有帮助的。事实上,您的问题非常笼统,因此,答案也将非常笼统。
从它的声音来看,您似乎不一定有泄漏,而是您对创建的短寿命对象的数量感到惊讶。
如果它影响了你的应用程序的性能——如果你的应用程序反应迟缓或反应迟钝——那么它值得进一步调查。如果这不是性能问题,那么我不会太担心(但会考虑随着数据集的增长会发生什么)。
如果您想进一步分析,请找出对象的来源。工具将提供分配点的回溯。随机选择一组来来去去的对象,然后单击以查看该对象的堆栈跟踪和/或分配相关事件。
如果您经常看到相同的堆栈重复出现,这为您提供了一个很好的起点,可以帮助您了解如何减少应用程序中的内存抖动。
该堆栈跟踪也将是形成新问题或扩展此问题的非常好的内容。