我有以下顺序调用的方法:
ParseText调用调用CleanText的ReadPDF;
我正在解析的PDF有15MB的文本,使用常规的核心2双核计算机从文件中提取所有数据需要10分钟。
如何将这些任务并行化?
编辑:只是为了澄清,阅读PDF只需要很少的时间,问题在于解析提取的文本,更具体地说是在CleanText阶段。我需要并行化的原因是清理单个页面是即时的,但清理2k +页面需要很长时间。
答案 0 :(得分:2)
首先,您可能需要查看阅读PDF的方式。如果它只有15MB,那么读取它不需要10分钟,除非你使用了一些非常糟糕的解析方法。 其次,在你找到更好地解析它的方法之后,你应该确保你可以从你需要的任何页面一次读取一个页面。之后,您将能够运行多个并行读取单个页面的任务。
答案 1 :(得分:1)
逐页阅读PDF并使用Pipelining处理每个页面。
http://blogs.msdn.com/b/pfxteam/archive/2010/04/14/9995613.aspx
正如之前的帖子中提到的,可能你做错了什么。它只有15MB PDF,不应该花10分钟阅读它。
答案 2 :(得分:0)
正如Denis所说,您可以阅读部分文本,通常是一个页面,但您可以将其分成较小的块,然后在阅读下一部分文本时处理该文本。
如果您想了解有关并行编程的更多信息,可以在MSDN Parallel Computing center找到好的信息和实验。
MDN也有一个Parallel Programming with .NET blog。
还有一本很好的书籍专业并行编程C#:带有.NET 4的Master Parallel ExtensionsbyGastónHillar