我怎么能看到我的程序吃多少内存?

时间:2012-02-25 16:20:27

标签: c++ visual-c++ memory

我的程序正在运行并创建变量,我需要知道这些变量的字节总数是多少。

我不想知道系统给我的程序执行的物理内存空间是多少,我知道我可以打开进程管理器并找出答案。 我既不想在我的代码中写入一些sizeof和agregations,所以我可以知道变量池的总大小(假设代码太复杂而不能像那样修改)。 最后我使用的是Microsoft VC ++ 2010 Express,我只想知道是否有工作区监控这类信息。

提前致谢。

2 个答案:

答案 0 :(得分:4)

检查出来:Memory Performance Information 。您可能感兴趣的正在运行的流程的指​​标很少,您将主要需要private bytes,并且这些数据可通过编程方式或通过Performance Monitor等工具获得。您还可以使用GetProcessHeaps(如果需要详细信息,甚至HeapWalk)枚举流程的大量数据并直接检查堆分配大小。

答案 1 :(得分:0)

Valgrind Massif profiler是一个很棒的工具(参见here),但我认为只适用于Unix / Linux。在您的情况下,在Windows上我认为Insure++softwareverify是不错的选择(它们是商业工具)。

免费的替代方案是Google的tcmalloc,它提供了一个堆分析器here