我想知道是否有一种有效的方法来测量特定C数据结构的实际内存消耗。你如何评估内存消耗?
目标是根据在这些数据结构上进行特定操作后内存使用情况如何变化来制定基准。
我不想要一种方法来计算正在使用的对象的数量;我确实想知道压力下的对象的内存使用量有多大。
有没有一种标准的方式来做到这一点,无论是在C代码,还是从外部? (一些相当于time
(1)实用程序将是一个开始)。
显然,我可以追踪每一个指针,并做所有sizeof
s的总和。如果这是唯一的方法,请告诉我。我想知道是否有更简单的方法。或者也许一个图书馆为我做。
我通过用perl脚本解析mtrace的输出来做了这样的跟踪。 mtrace是glibc的内建malloc示踪器;它可以通过预加载一个小的.so库来激活:http://stackoverflow.com/q/2593284/196561 – osgx
这个主题应该是有帮助的:[基准测试使用的测试交流和分配器] [ 1] [1]:http://stackoverflow.com/questions/2560114/benchmarks-used-to-test-ac-and-c-allocator – malinois
“我不寻求方法来计算的使用的对象的数量“如果你知道对象的数量和它们的大小,你就会知道内存消耗,非常明显你是什么意思? –