追踪ios内存泄漏源

2018-03-22  本文已影响17人  小杰杰杰

原文链接Locating the source of a memory leak.

开启Malloc Stack Logging:

Edit the scheme.png Look for the ‘Logging’ section under your Run Scheme.png Enable the Malloc Stack Logging checkbox..png

运行程序:

切换到如下视图


1.png Memory Debugger icon.png

你现在有了一个高级的内存调试器。如果应用程序运行时你点击可视化调试器,您可以像下面一样浏览内存泄漏:

内存泄露栈.png

这都是一样的,如果你现在看看你在右边的面板可以直接跳转到导致泄漏行:


内存泄露行1.png 内存泄露行2.png

我必须重申Emilien Stremsdoerfer指出的memory debugger 有点误导。在我的特殊情况下,问题的根源最终出现在第三方框架,缺乏一个弱声明——这不被Xcode列为内存泄漏。然而,感谢memory graph,我可以记录下来并提交PR给第三方框架。

我还想说,你应该打开和关闭这个选项,当你在调试内存泄漏时。打开Malloc堆栈日志时,一些性质的log并不会被调试器记录,这样使你可很难调试代码。

Understanding memory leaks in closures

上一篇下一篇

猜你喜欢

热点阅读