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