我已经找到一些与Qt相关的帖子并用C ++编写文件,但我没有找到现有方法的比较和问题的满意答案"什么是最快的方法在Qt写一个文件?" ...
任务: 我需要写一大堆双值(大约500.000到1.000.000)来归档到文件。由于我的程序结构,这些值保存在QList中,其中包含一些QVectors(每个QVector具有相同的大小)。 QVectors包含双精度值。另外,每列(每个QList元素是一列)必须以不同的精度写入。每列用\ t分隔。
我尝试了几种方法:
最后我使用fwrite(几乎相同的速度)使用QTextStream和FILE获得了最好的结果,QFile和QFile :: write的速度稍慢(可能是30%)。
但我仍然认为必须有一个更快的方法。对于500.000双值,我的PC(Core2Duo)需要大约2秒,并且这非常长。
我还想过使用Boost Karma C ++库 - 你能推荐一下吗? http://www.boost.org/doc/libs/1_51_0/libs/spirit/doc/html/spirit/karma.html
答案 0 :(得分:0)
假设你正如下面所做的那样,你不可能找到比fwrite更快的东西。
double values[1000] = {...};
fwrite(values, sizeof(double), 1000, f);