在不超载 RAM 的情况下写入巨大的 txt 文件

Dan*_*010 2 c++ file-io

我需要在txt文件中写入一个进程的结果。这个过程很长,要写入的数据量很大(~150Gb)。该程序运行良好,但问题是 RAM 超载,并且在某个时刻,它会停止。

程序很简单:

ostream f;
f.open(filePath);
for(int k=0; k<nDataset; k++){
    //treat element of dataset
    f << result;
}
f.close();
Run Code Online (Sandbox Code Playgroud)

有没有办法在不超载内存的情况下写入这个文件?

Jim*_*ion 5

您应该定期刷新输出。

例如:

if (k%10000 == 0) f.flush(); 
Run Code Online (Sandbox Code Playgroud)