【发布时间】:2015-06-30 06:23:25
【问题描述】:
我的应用程序正在从代理服务器日志中查看巨大的文本文件(多达 50 万行)。问题是日志的正常 StreamRead 迭代可能需要过多的时间来处理,所以我正在寻找更快的东西。
在表单上,用户选择他们需要解析的文件并输入最多三个站点过滤器进行检查。然后应用程序打开文件并开始从文件中的每一行解析日期戳和网站 URL。平均速度约为每秒两行,所以对于一个有 200,000 行的文件,这个过程大约需要 28 小时来处理一个文件。
我一直在阅读Task 课程,我认为这可能是要走的路,但微软没有给出一个很好的例子,那么我该如何实现呢?
【问题讨论】:
-
你是说 StreamReader 每秒只读取 2 行吗?这对我来说似乎非常缓慢。每条线有多长?
-
你能告诉我们你的代码的重要部分吗?
-
读取一行并解析日期戳和网站 URL 需要 0.5 秒?你不需要任务。你需要改变你的算法。
-
任何导致读取所有行的方法都是等待发生的错误,除非您知道文件会很小。如前所述,每秒两行似乎很慢。
标签: vb.net text task-parallel-library streamreader