并行并发二进制读卡器

本文关键字:读卡器 二进制 并发 并行 | 更新日期: 2023-09-27 18:27:21

I Have a Parallel.Foreach Loop在同一组大型数据文件上创建二进制读卡器
我只是想知道这些阅读器以并行方式读取相同的文件是否会影响性能(即,如果他们只读取不同的文件,速度会更快吗?)
我问是因为有很多I/O磁盘访问涉及(我想…)

编辑:我忘了提:我正在使用一个Amazon EC2实例,数据在分配给它的C:''Disk上。我不知道它是如何影响这个问题的。

编辑2:我将对数据文件夹进行测量,并从两个不同的来源进行读取,看看它会给出什么。

并行并发二进制读卡器

使用多个线程从同一个磁盘读取不是一个好主意。由于磁盘的机械头每次都需要旋转以寻找下一个读取位置,因此您基本上是在用多个线程来回跳动,从而影响性能。

实际上,最好的方法是使用单个线程顺序读取文件,然后将块交给一组线程并行处理。

这取决于文件的位置。如果你使用的是一个机械硬盘,那么不——不要并行读取文件,这会影响性能。不过,您可能有其他配置:

  • 在单个SDD上,并行读取文件可能不会影响性能,但我不认为您会获得任何好处
  • 在使用RAID 1的两个镜像磁盘和一个半像样的RAID控制器上,您可以同时读取两个文件,并获得可观的性能
  • 如果您的文件存储在SAN上,那么您绝对可以一次读取几个文件并提高性能。

    你必须尝试一下,但你必须小心——如果文件不够大,操作系统缓存机制会影响你的测量,第二次测试运行会非常快。