Visual C++ 检查进程内存中的对象实例大小[关闭]

Posted

技术标签:

【中文标题】Visual C++ 检查进程内存中的对象实例大小[关闭]【英文标题】:Visual C++ examine object instances size in the process memory [closed] 【发布时间】:2014-08-21 12:21:31 【问题描述】:

我想知道特定类型的所有实例在运行时消耗的总内存是多少。 我的意思是,我正在使用process explorer 来查看特定进程消耗了多少内存。但我也想知道进程内消耗了哪些对象以及它们消耗了多少内存。

【问题讨论】:

由于碎片化,“对象的所有实例消耗的内存”的概念是模糊的。您会发现在显式分配之间的小插槽中丢失了 Lots 的内存,这些内存不可用,也无法寻址到任何特定的对象类型。 在程序运行时深入并报告程序性能(通常是 CPU 使用率)的某些方面的工具称为“分析器”。因此,您正在寻找的内容可能被称为“内存分析器”。在 Google 上搜索 c++ "memory profiler" 可能是寻找对您有帮助的工具的良好开端。 VS2012 自带的内存配置文件没有提供对象的内存消耗信息。如果我错了请纠正我;) 【参考方案1】:

一些内存不足检测工具可以做到这一点,例如Memory Validator。它不是免费的,您可以下载试用版并尝试一下。

如果你只是想查找内存泄漏,MS 的DebugDiag 是一个不错的选择。

另一种方法是为要监视的对象覆盖 new 和 delete,从而可以跟踪内存使用情况。

【讨论】:

谢谢。不,我不寻找内存泄漏检测器。我想检查进程中消耗了多少内存。 我需要的是内存验证器。谢谢。

以上是关于Visual C++ 检查进程内存中的对象实例大小[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Visual C++ 中的数组大小

巧用Visual Studio中的数据断点去排查C++内存越界问题

C++ 代码内存泄漏

Visual Studio 2010 C++:获取 malloc 分配的内存块大小

Visual C++:运行时内存调试器刷新

在 Visual Studio C++ 中,内存分配表示形式是啥?