我有一个程序,当在初始化时查询时,它会立即使用 > 2 GB 的 RAM。基本上代码是这样的:
#include <blah>
int main() {
cout << get_mem_usage() << endl;
//Lots of things happen, but no significant memory usage
return 0;
}
输出:[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() 函数是自产的。
如果可能的话,我想减少程序的内存使用量。