我在C#中创建了一个Web爬虫。它从一个网址开始,查找该网址中的所有网址,然后访问所有其他网址,依此类推......
我将URL添加到具有预定义大小和字典的字符串数组中,以便我可以检查URL是否已被抓取(我使用Dictionary的ContainsKey()方法,因为它比线性数组搜索更快)。 / p>
它开始工作时速度非常快,但随着时间的推移会变得非常缓慢。原因是当Dictionary非常大(例如100K + URL)时,Dictionary的Contains()方法需要花费大量时间,这意味着我的网络爬虫会随着时间的推移而迅速减速。
我该怎么办?我必须检查是否已经添加了URL,并且字典查找是最快的方式,但是在字典变得足够大之后,即使这样也会变慢。