【发布时间】:2017-03-17 08:22:47
【问题描述】:
我需要每两小时读取和处理近 200 个文件。文件大小在 500KB - 10 MB 之间变化。
实现它的最佳方式应该是什么?读取所有文件是一项 I/O 工作。另一方面,我必须将该文件中的 json 序列化为一个通用列表,这是一个 CPU 作业。
我是否需要用两个不同的并行作业(例如首先获取所有文件然后处理它们)将它们分开?还是在并行循环中一个接一个地获取和处理?
我还需要最适合他们的存储类型。我的意思是在哪里使用并发包或只是列表?
谢谢。
【问题讨论】:
-
你有没有尝试过简单幼稚的方案,一个一个的读取文件,一个一个的处理? 200 * 10MB = 2GB,听起来你不需要做任何特别的事情来解决这里的性能问题。换句话说,您有性能问题,还是认为您有性能问题?
-
现在,我在 get-process-repeat 之类的 for 循环中执行此操作。持续1小时!。我认为它必须是最多 10 分钟
标签: c# multithreading parallel-processing file-read