当我用仪器“配置”我的应用程序时,发现了一些内存泄漏。 一些泄漏是明显的,易于修复,但有些不是。在仪器中显示的一些泄漏日志真的很困扰我。例如:
我甚至无法分辨出我的代码中哪一行称为幕后的“陌生人”。我该如何解决这些泄漏问题?这是我的代码泄漏?从框架?或者只是一个错误的报告?
然后我的问题是:
答:是否可以修复所有内存泄漏错误?其中一些真的很难处理。你甚至无法分辨出你的代码或框架工作中的错误。
B:是否有必要修复所有内存泄漏?几个字节泄漏可能没有任何影响。你付出的努力可能会花费很多钱。
答案 0 :(得分:4)
是的,这是可能的,是的,你应该。
从长远来看,泄漏并不好,特别是如果你的应用程序在后台运行。 如果泄漏在第三方库中,请告诉制造商修复它。或者,如果你有代码修复它自己。 泄露自己的代码很容易修复,所以就这样做。
答案 1 :(得分:4)
答:是否可以修复所有内存泄漏错误?其中一些是真的 难以对付。你甚至无法分辨出你的代码中是否存在错误 或从框架工作。
是的,这是可能的,但请注意有时你从剖析中得到的结果不一定是泄密,有时它们是尚未自动释放的物体,有时它们不是你的。
B:是否有必要修复所有内存泄漏?几个字节泄漏可能 什么都不影响你付出的努力可能会花费很多 超过你能得到的。
如果你的意思是你的应用程序不被拒绝,那么没有必要,不要过度工作并强调你自己似乎无法找到的一些字节,不要去寻找已丢失的几个字节,在那里,只有当你发现你的应用程序真的泄漏时才开始寻找泄漏。
答案 2 :(得分:0)
如果您的应用程序长时间运行(考虑作为某个服务器),那么它会频繁地继续进行2个字节的泄漏。在某些时候,你的堆将充满无限的泄漏。这可能会导致应用程序中的malloc失败。因此,修复内存泄漏对于长时间运行的应用程序更为重要。并且还可以修复所有内存泄漏。
如果应用程序短时间运行意味着,一旦应用程序存在,操作系统将释放所有资源,此时泄漏的内存也将被释放。