【发布时间】:2014-12-01 07:57:19
【问题描述】:
我正在开发一个需要提高内存效率的程序。我在我的程序中使用了std::vector 来存储大量元素。但是,我注意到,当较大元素数量时,程序的内存大小会呈指数级增长。
比如我写了如下代码:
#include <iostream>
#include <vector>
using namespace std;
int main(){
int vecSize;
cin >> vecSize;
vector<double> a(vecSize);
return 0;
}
然后我使用 gnu time 命令监控内存消耗,如下所示:
/usr/bin/time -f "Mem: %M" a.out
这是我得到的不同向量大小的内存结果:
VecSize MemUsage
10: 4720 KB
100: 4720 KB
1000: 4736 KB
10000: 5024 KB
100000: 7744 KB
1000000: 35872 KB
10000000: 317120 KB
有人知道为什么当元素数量超过100000时,内存用量快速增长?
【问题讨论】:
-
调试构建,是否有机会?