GitHub - archibate/mallocvis: allocation visualization in svg graph
正常连续内存分配
#include <vector>int main() {// 堆mallocstd::vector<int> memory;for (int i = 0; i < 1000; ++i) {memory.emplace_back(i*10);}return 0;
}
主动内存分配释放
#include <vector>class A {
private:float m_value;int m_id;
};
int main() {// 堆mallocstd::vector<A*> AS;for (int i = 0; i < 1000; ++i) {AS.emplace_back(new A());}// 堆freefor (int i = 0; i < 1000; ++i) {delete AS[i];}AS.clear();return 0;
}
内存泄漏
#include <vector>class A {
private:float m_value;int m_id;
};
int main() {// 堆mallocstd::vector<A*> AS;for (int i = 0; i < 1000; ++i) {AS.emplace_back(new A());}AS.clear();return 0;
}
注:宽度表示生存时间(黑色表示泄漏),高度表示内存占用大小,颜色表示每次调用地址