1

关于如何使用 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

谢谢你。

4

2 回答 2

0

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

于 2011-06-08T12:59:24.370 回答
0

定义“进一步优化”...您想要更快的速度还是更少的内存使用?

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

速度?基于您正在处理大型数据集的陈述,那么数据读取器将是您运行缓慢的最大原因。因此,如果您真的想使用并行处理,那么您必须对数据集进行分段(大概打开多个阅读器?)

但是话又说回来,您已经在后台工作程序中运行它,那么这真的很重要吗?

于 2011-06-08T13:22:31.990 回答