使用TPLPLINQ优化大型csv文件写入程序-大型表数据读取器

本文关键字:大型 数据 程序 读取 优化 TPLPLINQ csv 文件 使用 | 更新日期: 2023-09-27 17:58:14

关于如何使用TPL和/或PLINQ进一步优化的任何提示。

以下代码在后台工作程序上运行

Read a large table using sql reader 
Open stream writer to write a large csv file
while (reader.read())
{
   massage the data, parse data from columns etc. 
   create csv string to write to file
   write csv line to file
}
close reader
close file

谢谢。

使用TPLPLINQ优化大型csv文件写入程序-大型表数据读取器

通过将csv行数据写入StringBuilder(即内存中),然后将内容写入csv文件,您可能会发现更好的性能。我建议将这两种方法与ANTS或JetBrains产品等内存分析器一起使用。

定义"进一步优化"。。。你想要更高的速度还是更少的内存使用?

假设上面的伪代码是正确实现的,那么内存使用应该已经非常少了。

速度?根据您正在使用大型数据集的说法,那么数据读取器将是您速度缓慢的最大来源。因此,如果你真的想使用并行处理,那么你就必须对你的数据集进行分段(大概是打开多个阅读器?)

但话说回来,你已经在后台工作人员中运行了,所以这真的重要吗?