windows 7操作系统中windows任务管理器中的哪些指示器可用于查找内存泄漏? 我想通过观察“Windows任务管理器”进程标签来查找C++程序中的内存泄漏(渐增内存增加)。 我很困惑,因为我在下面的“windows任务管理器”进程选项卡中看到了许多与内存相关的专栏。 内存工作集 内存-工作集增量 内存专用工作集 内存-提交大小 内存分页池 内存-非分页池

windows 7操作系统中windows任务管理器中的哪些指示器可用于查找内存泄漏? 我想通过观察“Windows任务管理器”进程标签来查找C++程序中的内存泄漏(渐增内存增加)。 我很困惑,因为我在下面的“windows任务管理器”进程选项卡中看到了许多与内存相关的专栏。 内存工作集 内存-工作集增量 内存专用工作集 内存-提交大小 内存分页池 内存-非分页池,c++,c,visual-c++,C++,C,Visual C++,我在网上搜索了与此相关的主题,但没有得到满意的答案 请告诉我应该用哪个指示器来检查内存的增加,这样我才能判断我的C++代码进程是否有内存泄漏。 供参考 我的局限是;我不能使用任何分析工具或静态代码分析器工具,只能在系统上使用windows任务管理器来查找内存泄漏。简短的回答:这是不可能的 只看任务管理器,就没有足够的可用数据。内存泄漏通常是指仍然分配但不再使用的内存;然而,在任务管理器看来,进程似乎仍将使用该内存(而且它无法找到答案)。您可能会注意到内存使用量不断增加,但这只是内存泄漏的一个指标

我在网上搜索了与此相关的主题,但没有得到满意的答案

请告诉我应该用哪个指示器来检查内存的增加,这样我才能判断我的C++代码进程是否有内存泄漏。 供参考
我的局限是;我不能使用任何分析工具或静态代码分析器工具,只能在系统上使用windows任务管理器来查找内存泄漏。

简短的回答:这是不可能的


只看任务管理器,就没有足够的可用数据。内存泄漏通常是指仍然分配但不再使用的内存;然而,在任务管理器看来,进程似乎仍将使用该内存(而且它无法找到答案)。您可能会注意到内存使用量不断增加,但这只是内存泄漏的一个指标——也可能是程序确实使用了该内存(或保留该内存以备将来使用,例如,因为它使用自己的内存管理)。如果不使用其他工具,您就无法知道。

简短的回答是:这是不可能的


只看任务管理器,就没有足够的可用数据。内存泄漏通常是指仍然分配但不再使用的内存;然而,在任务管理器看来,进程似乎仍将使用该内存(而且它无法找到答案)。您可能会注意到内存使用量不断增加,但这只是内存泄漏的一个指标——也可能是程序确实使用了该内存(或保留该内存以备将来使用,例如,因为它使用自己的内存管理)。如果不使用其他工具,您就无法知道。

正如其他海报所说,缓慢增加和少量增加并不一定表明存在问题

但是,如果您有一个长时间运行的进程,该进程缓慢地消耗了比理论上需要的内存多得多的内存(或者在类似使用场景下在健康版本的组件中进行了测量),那么您很可能会发生内存泄漏。我首先注意到组件中的问题,其他人报告该组件使用了千兆字节的内存(通常使用大约2-3MB)。如果希望看到进程内存的长期视图,Perfmon非常有用。您可以按名称选择进程,然后选择私有字节度量,并设置时间和网格以在(比如)24小时内进行度量


一旦确定进程内存有一定的增加,就可以使用调试器、Valgrind、Parasoft、Glow代码等工具。。。确保您看到的是真正的内存泄漏。但是,即使不是真正的内存泄漏(未引用的堆内存),如果内存使用量不断增加,您仍然需要重新设计组件。

正如其他海报所说,缓慢增加和少量增加并不一定表明存在问题

但是,如果您有一个长时间运行的进程,该进程缓慢地消耗了比理论上需要的内存多得多的内存(或者在类似使用场景下在健康版本的组件中进行了测量),那么您很可能会发生内存泄漏。我首先注意到组件中的问题,其他人报告该组件使用了千兆字节的内存(通常使用大约2-3MB)。如果希望看到进程内存的长期视图,Perfmon非常有用。您可以按名称选择进程,然后选择私有字节度量,并设置时间和网格以在(比如)24小时内进行度量


一旦确定进程内存有一定的增加,就可以使用调试器、Valgrind、Parasoft、Glow代码等工具。。。确保您看到的是真正的内存泄漏。但是,即使它不是真正的内存泄漏(未引用的堆内存),如果内存使用量不断增加,您仍然需要重新设计组件。

要确认您对泄漏部分的怀疑,您可以以Perfmon内存分析为例-

专用字节是内存量的合理近似值 您的可执行文件正在使用并可用于帮助缩小 内存泄漏的潜在可能性;如果你看到这个数字在增长 不断地、无休止地成长,你会想检查一下 泄漏的过程。然而,这不能证明存在或不存在 不漏


有关详细信息,请参阅-

要确认您对泄漏部件的怀疑,您可以以Perfmon内存分析为例-

专用字节是内存量的合理近似值 您的可执行文件正在使用并可用于帮助缩小 内存泄漏的潜在可能性;如果你看到这个数字在增长 不断地、无休止地成长,你会想检查一下 泄漏的过程。然而,这不能证明存在或不存在 不漏


有关详细信息,请参阅-

很抱歉让您失望,但逐渐增加的内存使用并不表示内存泄漏。程序释放内存时不必将内存返回到O/S。只有当程序退出时,所有内存才会返回到O/S。如果内存使用率逐渐增加,这可能表明您必须对内存使用率采取措施,但它本身并不表示内存泄漏。查找泄漏的方法非常糟糕。。。我唯一一次发现漏洞是因为我在做视频编解码器