【发布时间】:2016-07-07 20:46:43
【问题描述】:
在正在运行的程序中,如何跟踪/打印对象已分配的堆内存量?
例如:
#include <iostream>
#include <vector>
int main(){
std::vector<int> v;
std::cout << heap_sizeof(v) << '\n';
for (int i = 0; i < 1000; ++i){
v.push_back(0);
}
std::cout << heap_sizeof(v) << '\n';
}
是否有可以替代heap_sizeof() 的实现?
【问题讨论】:
-
一般情况下,仅针对特定平台。它与堆的实现密切相关。
-
shared_ptr应该计入谁?
-
std::cout << sizeof(int) * v.capacity() << endl; -
vector 可能不是最好的例子。我一直在寻找可以在自定义类型上工作的东西。
-
@TrevorHickey,见这里:stackoverflow.com/questions/949422/…
标签: c++ memory-management heap-memory allocation