读书人

C++资料操作有没有快速写入的方法

发布时间: 2013-07-09 09:50:47 作者: rapoo

C++文件操作有没有快速写入的方法?
C++资料操作有没有快速写入的方法我写入700条数据,用了10秒。这速度让我汗颜了。。。。
[解决办法]
在文件大小相同的前提下:
读刚读过的文件比头次读没读过的文件快
读转速快的硬盘上的文件比读转速慢的硬盘上的文件快
读没有磁盘碎片的文件比读有磁盘碎片的文件快
读文件不处理比边读边处理快
单线程从头到尾一次读文件比多线程分别读文件各部分快(非固态硬盘上)
读固态硬盘上的文件比读普通硬盘上的文件快

写和读类似,会略有不同。
[解决办法]

引用:
在文件大小相同的前提下:
读刚读过的文件比头次读没读过的文件快
读转速快的硬盘上的文件比读转速慢的硬盘上的文件快
读没有磁盘碎片的文件比读有磁盘碎片的文件快
读文件不处理比边读边处理快
单线程从头到尾一次读文件比多线程分别读文件各部分快(非固态硬盘上)
读固态硬盘上的文件比读普通硬盘上的文件快

写和读类似,会略有不同。

++
多线程的优势在计算上,在磁盘,大概只有服务器,才可能比较好;
因为PC得 磁盘操作,可能是串行化的,即使读写不同两块磁盘。


[解决办法]
文件读写耗时都耗在调用函数上。真正的读写操作不是很大的数据(比如一次上百兆的)不会有这么夸张的。怎样减少调用次数才是关键。
[解决办法]
引用:
把这700条数据一次性写入不就行了。


正解,如果不是实时性要求比较高的写入(如日志),建议先缓存一些再写入。时间都耗在IO操作上了
[解决办法]
显然是你代码的问题。。。。。。。
我用c++写上GB的数据也就几十秒而已。。。

读书人网 >C++

热点推荐