inv*_*ino 1 c++ ram memory-management
我有一个程序,在初始化时查询时,立即使用> 2 GB的RAM.基本上代码是这样的:
#include <blah>
int main() {
cout << get_mem_usage() << endl;
//Lots of things happen, but no significant memory usage
return 0;
}
Run Code Online (Sandbox Code Playgroud)
产量:[2013-02-15 18:38:05.865283] 2147.71 Mb
但是,我链接到许多不同的共享对象文件:我检查了ldd,我链接到58个库,组合的.so大小为66 MB.
我很确定get_mem_usage程序返回正确的值:这些与top和massif输出一致.
我还要提一下,我正在与高能物理分析的ROOT框架联系起来.
我使用的是Linux x86_64,而get_mem_usage()函数是自行开发的.
如果可能的话,我想减少程序的内存使用量.
我的第一个猜测:你链接的一些库中的静态启动.
插入一个长暂停作为第一行,main()并查看/ proc/<pid> /以查看内存的分配位置.例如: