C++ 如何计算程序中使用的总空间?

C++ 如何计算程序中使用的总空间?,c++,c,C++,C,假设我用C/C++创建了一个程序,并且有一个源代码。 我想知道程序执行期间的总内存 有人提到了“马洛克”和“胡克” 有没有其他方法可以追踪所使用的间隔 如果您运行的是Linux或基于Unix的操作系统,则最有可能使用。Valgrind运行程序,截取所有内存分配,并在退出后打印统计数据。它是检查内存泄漏和内存使用情况的非常有用的工具。如果您正在运行Windows,我一点也不知道。您可以在linux中使用“top”命令或在Windows中使用taskmgr来监视内存使用。在类似linux的系统中,您

假设我用C/C++创建了一个程序,并且有一个源代码。 我想知道程序执行期间的总内存

有人提到了“马洛克”和“胡克”
有没有其他方法可以追踪所使用的间隔

如果您运行的是Linux或基于Unix的操作系统,则最有可能使用。Valgrind运行程序,截取所有内存分配,并在退出后打印统计数据。它是检查内存泄漏和内存使用情况的非常有用的工具。如果您正在运行Windows,我一点也不知道。

您可以在linux中使用“top”命令或在Windows中使用taskmgr来监视内存使用。

在类似linux的系统中,您可以使用

/proc/self
查找程序在运行时使用的内存总量。它还包含有关该过程的许多其他信息,请参阅

man 5 proc

详细信息。

我想说“关于valgrind的一些事情”,这将取决于平台。你在哪个平台上运行?我相信,总的来说,这是一个无法解决的问题。除非程序是完全静态的(如果是,你为什么要编写它?)或非常简单,否则程序的占用空间可能会随着运行而变化。@jpm理论上是的,但实际上你总是可以得到一个不错的估计值。如果我们谈论的是估计值,我们可以归结为三类:“合理的数量”,“超出了我们合理预期的用户备用量”和“天哪,它到处都在泄漏!“:-)特别是valgrind工具“massif”是一个堆分析器,它将显示程序生命周期内的使用情况。