【发布时间】:2016-04-07 17:26:11
【问题描述】:
我需要用 C++ 编写一个文件。内容是来自 while 循环的标记,所以现在我正在逐行编写它。 现在我在想,我可以改进将所有内容保存在变量中的写入时间,然后再写入文件。 有人知道这两种方式哪个更好吗?
每一行都是由这个函数写的:
void writeFile(char* filename, string value){
ofstream outFile(filename, ios::app);
outFile << value;
outFile.close();
}
while(/* Something */){
/* something */
writeFile(..);
}
另一种方式是:
void writeNewFile(char* filename, string value){
ofstream outFile(filename);
outFile<<value;
outFile.close();
}
string res = "";
while(/* Something */){
/* something */
res += mydata;
}
writeNewFile(filename, res);
【问题讨论】:
-
文件 I/O 速度并不是一件容易尝试和优化的事情。当然,如果你的程序只是做了一些会减慢磁盘写入速度的无意义的事情(比如调用
sleep或类似的东西),那是一回事。但是,如果您编写的代码看起来不错,但磁盘写入速度仍然很慢,那么可能是您的磁盘本身很慢。
标签: c++ performance writefile