我有一个Qt C++程序,可以在循环中处理一些数据。
它将每个数据处理结果附加到文本文件的末尾。数据处理操作被放置在一个循环中,所以程序可以在几秒钟内产生超过800个结果,然后一个接一个地写出来(即单独的)。
我认为如此多的I/O操作对计算机的硬盘不是很好,所以我组织了一个数组来存储数据处理结果,当数组长度超过200时,程序会将其附加到文件和清理中,而数组又变成了200多个,等等。
但我不知道-真的需要吗?也许这只是对RAM的浪费,我应该在没有这些数组(缓冲区)的情况下将数据附加到文本文件中?毕竟,程序以独立的方式编写相同数量的数据。
发布于 2013-04-21 03:37:33
一般来说,由于c++机制提供了缓冲的io,所以您可以随意修改它。在您的上下文中,您所引用的“800个结果”并不能说明输出数据的确切大小。所以你可能太熟练了。函数ios::rdbuf()将得到指向表示流内部缓冲区的streambuf对象的指针。然后,您可以调用streambuf::pubsetbuf(char * s,streamsize n)来设置一个具有给定大小的新内部缓冲区。您还可以从ios/rdbuf中找到详细信息。
https://stackoverflow.com/questions/16127495
复制相似问题