【发布时间】:2011-08-09 16:42:24
【问题描述】:
我可以使用任务管理器来检测巨大的内存泄漏吗?我有一个小型文本解析程序,当我启动它时显示内存使用量约为 640K。当我解析文件并为其编制索引时,内存使用量会根据文件的大小而增长。然后,当我“清除”索引时,我的内存使用量下降到 1400K 左右。在此之后,我可以添加任意数量的文件,当我清除索引时,内存使用量会下降到 1400k 级别 + 或 - 大约 5%。
这是在我对程序进行更改之后。在更改之前,每次我索引一些文件然后清除时,内存使用量都会继续上升。所以在多次清除之后,我的程序的内存使用量越来越大。
我意识到这可能是对我的应用进行分析的一种“骇人听闻”的方式,但我是一名学生,我所能找到的只是商业分析工具,这些工具是遥不可及的。我还阅读了有关 valgrind 的信息,它只是 linux 并且我正在 Windows 上开发。使用任务管理器是准确的还是我被误导了?
【问题讨论】:
-
谢谢,我在搜索中没有遇到这个问题,那里有很好的信息。我还是想知道使用windows任务管理器来感受一下应用程序的内存使用情况,看看有没有泄露的准确性和可行性。
-
对您的问题的简单回答是肯定的。任务管理器足够可靠,可以告诉进程总共需要多少内存。(从操作系统的角度来看)。但它不会提供任何详细的细节并帮助您进行调试。在您的情况下,看起来您对任务很好经理现在。但是这种方法不会扩展:)
标签: c++ memory-leaks profiling memory-management