你如何评估内存消耗?

时间:2011-08-23 07:47:59

标签: c++ c memory benchmarking

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

目标是根据对这些数据结构进行特定操作后内存使用情况的变化来制定基准。

我没有想办法计算使用中的物体数量;我确实想知道在压力下对象的内存使用量究竟有多大。

有没有一种标准的方法可以做到这一点,无论是在C代码还是从外部? (某些等效于time(1)的实用程序将是一个开始)。

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

在Unix上用于内存消耗你可以使用valgrind和工具Massif(+任何可视化工具),但我不知道它是否适合你的问题,因为它会给你一个详细的内存消耗的视图你的计划。

答案 2 :(得分:0)

是的,cnicutar,在Linux上你有pmap或者甚至是pstat。

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