我有一个Qt C++程序,它可以在循环中处理一些数据。C++多次将文本写入文件
它将每个数据处理结果附加到文本文件的末尾。数据处理操作被放置在一个循环中,因此程序可以在几秒钟内生成更多的800个结果,并逐个写入(即单独)。
我认为这么多的I/O操作对计算机的硬盘来说并不是很好,所以我组织了一个数组来存储数据处理结果,当数组长度超过200时,程序会将它附加到文件和干净,比阵列再次变得更多,等等。
但我不知道 - 是否真的需要?也许这只是浪费内存,我应该追加数据到文本文件没有这些数组(缓冲区)?毕竟,程序独立地以相同的数据写入相同数量的数据。
这是矫枉过正。您可以期望您的操作系统自动执行您正在尝试执行的操作。 – 2013-04-21 03:01:59
别担心,你的硬盘会有一个[磁盘缓冲区](http://en.wikipedia.org/wiki/Disk_buffer),这是一个内存缓存系统,它可以确保这个缓存在第磁盘写入。例如一个8kb的缓存,将等待8kb的数据填满,然后将它作为一个8kb的数据块写入驱动器 – 2013-04-21 03:06:49
如果你正在打开无缓冲的系统调用,我会说这不是不明智的,但我非常怀疑你在IO层很深,所以你正在做的事情可能完全是矫枉过正。 – WhozCraig 2013-04-21 03:07:57