你如何评估内存消耗?

我想知道是否有一种有效的方法来测量特定C数据结构的实际内存消耗。

目标是根据在这些数据结构上的特定操作之后内存使用情况如何变化来制定基准。

我不寻求一种方法来计算使用中的物体数量; 我确实想知道在压力下对象的内存使用量究竟有多大。

有没有一种标准的方法可以用C代码或外部来做到这一点? (一些相当于time (1)效用将是一个开始)。

显然,我可以追踪每个指针,并对所有sizeof进行总和。 如果这是唯一的方法,请告诉我。 我想知道是否有一种更简单的方法。 或者也许是图书馆为我做这件事。

如果要在全局级别监视程序的内存使用情况,可以使用自己的函数替换C ++中的new/delete或C中的malloc/free ,并记录内存使用情况。

在Unix上用于内存消耗,您可以将valgrind与工具Massif(+任何可视化工具)一起使用,但我不知道它是否适合您的问题,因为它将为您提供程序所有内存消耗的详细视图。

是的,cnicutar,在Linux上你有pmap甚至可能是pstat。

在MS上,VStudio有无数的分析工具,具体取决于您对MS机器的贡献(即使是免费的cmd线路使用)。 叫我绿角,我没有内存泄漏的问题。