xcode工具:内存泄漏

时间:2015-12-28 10:16:19

标签: objective-c xcode memory-leaks xcode-instruments

在XCode 7中的内存泄漏工具中,时间轴中的那些交叉代表什么(以及带负号的灰色形状)?我在文档中找不到它,它们会定期出现在时间轴上。

enter image description here

我得到一个泄漏对象的长列表(这是过去几年开发的一个大项目)。该列表是否应该总是空的,或者在正在运行的应用程序中发生泄漏是否正常,或者这是否意味着它的编写错误?

enter image description here

2 个答案:

答案 0 :(得分:2)

我可以回答第一个问题。 Leaks仪器最初每10秒检查一次内存泄漏。如果Leaks仪器自上次检查后发现新的泄漏,则会显示一个带有X的红色符号(红色十字)。带有减号的灰色符号表示Leaks仪器发现内存泄漏,但自上次检查后没有新的泄漏。

目标是让Leaks仪器显示带有复选标记的绿色符号。这意味着没有发现泄漏。

<强>摘要

Green: no leaks 
Gray: no new leaks 
Red: new leaks

答案 1 :(得分:1)

  

只是想知道:这个列表应该总是空的,还是正常的   在正在运行的应用程序中获取一些泄漏,或者这是否意味着它很糟糕   书面代码

不,这不是正常的事情,当然这是一个带有这些漏洞的丑陋代码。

如果您现在正在处理此应用程序,您应该尝试减少ZERO泄漏,或最小化到可接受的状态(这里我的意思是如果某些泄漏来自某些第三方库)。

即使我参与了一个从10年级开始生产的项目,这个项目没有任何泄漏,但是我们发现了一些并删除它,否则客户端将不接受代码。