【发布时间】:2016-08-27 08:37:49
【问题描述】:
有一个 url 只包含文本。
格式为
firstWord~:::~secondWord
目标是查找secondWord,然后查找Console.WriteLinefirstWord。
如果我不得不猜测,我会说使用WebClient 将文本文件下载到string,然后使用regex 查找它。
问题是这个文件大约 1 GB,我不确定最快的方法是什么。
有什么想法吗?谢谢!
【问题讨论】:
-
如果你想要速度,那么你肯定不想使用正则表达式
-
也许您可以一次下载一些数据?假设您有一个读取直到找到新行的方法,然后它以您想要的方式处理该行文本。如果没有找到您的文本,请继续下载几个字节,直到找到下一个新行。
-
@VisualVincent 说得很好,但是如果假设文本一直位于 1 Gig 文件的底部,需要多长时间。
-
这取决于您的网速、您的计算机规格以及您编写代码的方式。您可能希望在单独的线程/任务中执行此操作,因为您仍在下载整个 1 GB 文件,但一次只能下载几个字节。首先(即,如果您的字符串位于底部),很可能会更快地下载文件,但是您必须再次等待整个下载完成。
-
isn't it already going as fast as possible?- 唯一可以使已经完全速度优化的流程更快的方法是划分工作。这就是我们使用多线程的原因。