我有一个用C ++编写的程序,可以将文件永久写入硬盘。使用的硬盘速度足够快,可以在不降低应用程序速度的情况下进行处理。
现在,我不时喜欢该程序将文件复制/同步到我们的服务器。我面临的挑战是我不希望该副本使用很多系统资源,因此不会降低应用程序或新文件的写入速度。
我猜想在后台线程上运行复制/同步会有所帮助,但仍会给硬盘造成压力并减慢新文件的写入,对吗?
所以我想我的问题是如何控制复制操作的速度?还是有另一种更好的方法来做到这一点?
任何帮助都非常感谢。
丹尼斯
重读此内容-“现在,我不时需要将文件复制/同步到我们服务器的程序。面临的挑战是我不希望该副本使用很多系统资源,因此不会降低应用程序的运行速度或编写新文件。”
这意味着您实际上并不是要避免努力工作。您只是不想落后于其他文件工作。
我将创建一个后台线程来完成所有磁盘访问;并为其提供2个队列。第一个是要写入的新文件。第二个是要复制的文件。然后,该线程可以通过一次处理多个块来全速使用磁盘。优先级是从新文件区域获取块。这样您就可以开始进行复制了。然后在有大量文件要处理时(如果有突发事件)停止完全复制,然后在处理完所有文件后尽快复制。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句