如何使用xcode配合instruments分析iOS内存泄露

2025-04-17 08:32:02
推荐回答(2个)
回答1:

1.用xcode打开自己的工程,按快捷键command+r 运行需要测试的程序。

2.

点击xcode导航栏的“show the debug navigator”,切换到debug模式

然后选中“Memory”,再点击右侧的 “Profile in Instruments”,会自动打开Instruments。

3.这时候会弹出来一个对话框,选择“Transfer”

4.打开后,这时界面如图:

5.然后切换到iOS模拟器,点击那个测试按钮

6.这个时候会弹出一个对话框,

7.

“cancel”取消对话框后,多点几次“button”,切换到Instruments会发现 “Leaks”一栏里有几个红色的区块。

这就是内存泄露了。

8.

点击暂停,

然后点击“Leaks”一栏

9.然后点击“导航栏”切换到“call tree”模式下

10.看到列表里列出了内存泄露的调用逻辑:

11.

勾选右边的详细窗口中的“hide system libraries”,隐藏系统函数。

这个时候就可以清楚看到我们自己程序中的方法调用层次结构了。

展开后,可以发现是[ViewController onTestLeakBtn].

12.

鼠标双击“[ViewController onTestLeakBtn ]”这一行,会跳转到代码。

剩下的工作就是修改代码,然后重复以上步骤。直到没有内存泄露为止。

回答2:

用xcode打开自己的工程,按快捷键command+r 运行需要测试的程序。

2
点击xcode导航栏的“show the debug navigator”,切换到debug模式
然后选中“Memory”,再点击右侧的 “Profile in Instruments”,会自动打开Instruments。

这时候会弹出来一个对话框,选择“Transfer”

打开后,这时界面如图:

然后切换到iOS模拟器,点击那个测试按钮

这个时候会弹出一个对话框,

“cancel”取消对话框后,多点几次“button”,切换到Instruments会发现 “Leaks”一栏里有几个红色的区块。
这就是内存泄露了。

点击暂停,
然后点击“Leaks”一栏

然后点击“导航栏”切换到“call tree”模式下

看到列表里列出了内存泄露的调用逻辑:

勾选右边的详细窗口中的“hide system libraries”,隐藏系统函数。
这个时候就可以清楚看到我们自己程序中的方法调用层次结构了。
展开后,可以发现是[ViewController onTestLeakBtn].

鼠标双击“[ViewController onTestLeakBtn ]”这一行,会跳转到代码。
剩下的工作就是修改代码,然后重复以上步骤。直到没有内存泄露为止。