我想知道是否有一种有效的方法来测量特定C数据结构的实际内存消耗。
目标是根据对这些数据结构进行特定操作后内存使用情况的变化进行基准测试。
我不寻求一种方法来计算正在使用的对象的数量;我确实想知道对象在压力下的内存使用量究竟有多大。
是否有一个标准的方法来做到这一点,无论是在C代码,还是从外部?(一个等价于time
(1)的实用程序可以作为开始)。
显然,我可以跟踪每一个指针并对所有sizeof
求和。如果这是唯一的办法,请告诉我。我想知道是否有更简单的方法。或者一个库来帮我做
如果您想在全局级别上监视程序的内存使用情况,您可以用自己的函数替换c++中的new/delete
或C中的malloc/free
并记录内存使用情况。
在Unix上,对于内存消耗,您可以将valgrind与Massif工具(+任何可视化工具)一起使用,但我不知道它是否适合您的问题,因为它将为您提供程序所有内存消耗的详细视图。
Linux上有pmap甚至pstat
在MS上有无数的VStudio分析工具,这取决于你对MS机器的贡献(甚至是cmd行使用的免费工具)。叫我绿色号角,我没有内存泄漏的问题。