我正在寻找清理我应用程序的所有漏洞。
正如您在下面的图片中看到的那样,SQLite会造成大量内存泄漏。 我通过CoreData使用SQLite。最奇怪的是,AdresseBook正在使所有libsqlite3泄漏,我从不使用AdressBook !!!
你有什么想法吗?
谢谢:)
答案 0 :(得分:1)
CoreData不会产生任何已知的泄漏,因此您的应用必须以某种方式触发此操作。 AddressBook是iPhone上相对普遍存在的框架,因为其他系统框架最终会吸收AB和AB的数据。
因此,你的应用程序中有一些东西触发了AB的使用,然后触发了使用CoreData。
在任何情况下,由于您不直接使用SQLite,因此您应该将分析工作的重点放在堆栈跟踪中;在代码和系统框架之间的接口。查看该屏幕截图,有两个可疑属性:
第46,47和48帧没有符号。你在运行调试版本吗?如果没有,请执行此操作并解决这些框架。
提到了一堆线程相关的东西。你绝对确定你已正确完成了你的线程吗?在线程应用程序中创建泄漏非常容易。
(这些“泄漏”也有可能不是真正的泄漏,但是是误报。可能不是,但你追逐鬼的可能性很小)
在任何情况下,修复泄漏的最佳方法是首先关注易泄漏 - 您理解的泄漏 - 并查看剩余的泄漏。许多泄漏通常是其他泄漏的副产品。
答案 1 :(得分:0)
我们可以看到整个痕迹吗?
另外我猜你已经运行过静态分析仪?如果没有,你可以通过以下方式找到它:Build - >建立和分析