因此,我目前正在研究处理在c#中处理大文件的最佳方法。我们目前有一个包含1000万行以上数据的大文件。最初,我的客户说该文件将包含数以万计的行,因此我们以前每行都写入一个新文件,并由我们的界面引擎进行处理。但是,现在我们看到这些文件大大超出预期,并且处理过程需要一个周末。我正试图优化我们的逻辑,并正在研究实现它的最佳方式。我考虑尝试从单个文件中读取多个线程,但是磁盘I/O的机械瓶颈并没有提供太多的改进空间。下一个方法是读取每一行并在一个单独的线程上处理每一行(或一组行)。这将给我们一些优化,因为每行的处理可以同时完成。我知道有些人在处理非常大的文件方面有丰富的经验,并希望得到我的方法的一些反馈,或者可能有其他方法来解决这个问题。c# - 逐行处理大文件 - 优化
任何想法和意见,赞赏。
你是否可视化地显示你的处理进度?这通常可能是一个瓶颈,通过增加渲染间隔可以大大减少瓶颈。 –
这里的常见优化模式是双缓冲。因此,一个读取器读取缓冲区,然后多个线程处理它 – zerkms
个别行有多大? 目前处理时间是否线性缩放? (每行x秒?) 你有限制哪个版本的C# –