ale*_*rtr 10 c# multithreading hard-drive
我正在开发一个应用程序,收集硬盘驱动器的所有文件的列表,然后它会将文件写入硬盘驱动器.
我想问一下:执行此任务的最佳并发线程数是多少?
我的意思是我应该有多少线程读取硬盘驱动器而不会让硬盘驱动器变慢,因为很多线程同时读取它.
谢谢 !
起初,我说一个!
它实际上取决于要读取的数据是否需要复杂的计算才能被详细说明.在这种情况下,可以方便地实例化多个线程来详细说明不同的磁盘数据; 但只有在同一系统上有多个CPU时,这才很方便.
否则,多个线程对硬盘更强调不是必要的:同时从不同的线程读取会发出寻求操作用于读取文件块(*),将可能拖慢系统,取决于数量的文件中读取的开销和文件的大小.
按顺序读取文件.
(*)操作系统确实尝试按顺序存储相同的文件块,以加快读取操作.磁盘碎片发生,因此非顺序碎片需要搜索操作,这需要更多时间来尊重同一位置的读取操作.尝试并行读取多个文件,会导致一堆搜索,因为单个文件块是连续的,而多个文件块可能不连续.
| 归档时间: |
|
| 查看次数: |
5934 次 |
| 最近记录: |