[英]How do you benchmark memory consumption?
我想知道是否有一种有效的方法来测量特定C数据结构的实际内存消耗。
目标是根据在对这些数据结构进行特定操作后内存使用情况如何变化来制定基准。
我不寻求一种方法来计算使用中的物体数量; 我确实想知道在压力下对象的内存使用量究竟有多大。
有没有一种标准的方法可以做到这一点,无论是在C代码中,还是从外部? (某些等效于time
(1)的实用程序将是一个开始)。
显然,我可以追踪每个指针,并对所有sizeof
进行求和。 如果这是唯一的方法,请告诉我。 我想知道是否有一种更简单的方法。 或者也许是一个图书馆为我做这件事。
如果要在全局级别监视程序的内存使用情况,可以使用自己的函数替换C ++中的new/delete
或C中的malloc/free
,并记录内存使用情况。
在Unix上用于内存消耗你可以使用valgrind和工具Massif(+任何可视化工具),但我不知道它是否适合你的问题,因为它会给你一个详细的程序内存消耗的视图。
是的,cnicutar,在Linux上你有pmap甚至可能是pstat。
在MS上,有许多适用于VStudio的分析工具,具体取决于您对MS机器的贡献(即使是使用cmd线路的免费分析工具)。 叫我绿角,我没有内存泄漏的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.