以极低的资源要求强制复制文件

Force file copy with very lower resources requirements

我有一个用 C++ 编写的程序,可以将文件永久写入硬盘。使用的硬盘速度足够快,可以在不降低应用程序速度的情况下处理这个问题。

现在我不时喜欢这个程序 copy/sync 将文件传送到我们的服务器。我面临的挑战是我不希望副本使用很多系统资源,因此它不会减慢应用程序或新文件的写入速度。

我想 运行 后台线程上的 copy/sync 会有所帮助,但它仍然会给硬盘带来压力并减慢写入新文件的速度,对吗?

所以我想我的问题是如何控制复制操作的速度?或者还有其他更好的方法吗?

非常感谢任何帮助。

丹尼斯

重读此文 - "Now from time to time i like the program to copy/sync the files to our server. The challenge im facing is that i don't want the copy to use many system resources so it's not slowing the application or the writing of new files."

这意味着你实际上并不是在试图避免努力工作;您只是不想落后于其他文件工作。

我会创建一个后台线程来执行所有磁盘访问;并提供 2 个队列供其处理。第一个是要写入的新文件;第二个是要复制的文件。然后,该线程可以通过一次处理块来全速使用磁盘;优先从新文件区域获取块。这将允许您开始复制;然后在有大量文件要处理时完全停止复制(以防突然出现),然后在处理完所有文件后尽可能快地复制。