这是我的结构
struct Node
{
int chrN;
long int pos;
int nbp;
string Ref;
string Alt;
};
填充我通过文件读取的结构并将我的兴趣变量解析为结构,然后将其推回向量。问题是,大约有 2 亿个项目,我应该将所有项目都保存在内存中(以备后续步骤)!但是程序在以 bad_allocation 错误推回 5000 万个节点后终止。
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
四处寻找让我觉得我没有记忆了!但 top 的输出显示 %48 (终止发生时)
可能有用的其他信息:我将堆栈限制设置为 unlimit,并且我使用的是 Ubuntu x86_64 x86_64 x86_64 GNU/Linux 和 4Gb RAM。
任何帮助都将是最受欢迎的。
更新:
第一次从向量切换到列表,然后将每个 ~500Mb 存储在文件中并为它们编制索引以供进一步分析。