【发布时间】:2014-03-28 01:18:29
【问题描述】:
我有一堆包含 300k 行的 txt 文件。每行都有一个URL。例如。 http://www.ieee.org/conferences_events/conferences/conferencedetails/index.html?Conf_ID=30718
在一些 string[] 数组中,我有一个网站列表
amazon.com
google.com
ieee.org
...
我需要检查URL 是否包含一个网站并更新与某个网站对应的一些计数器?
目前我正在使用contains 方法,但速度很慢。数组中有大约 900 条记录,所以最坏的情况是 900*300K(对于 1 个文件)。我相信indexOf 也会很慢。
有人可以帮助我更快的方法吗?提前谢谢你
【问题讨论】:
-
向我们展示您当前的代码。
-
这是一个简单的并行化候选 - 您是否研究过 Parallel.For 或类似的?
-
另外,您是否只搜索主机名?如果是这样,有一种方法可以加快速度。
-
用
contains测试URI 无论如何都是一个根本性的想法。google.com.example.com呢?看起来你真的应该解析所有的 URL(实际上是 URI,对吗?)提取相关部分,然后在字典中查找。
标签: c# string data-structures substring