我正在运行一个代码,使用来自100万个文档的正则表达式来提取超链接,一开始,代码最初运行得非常快(大约每秒200个文档)但后来变得非常慢,慢到10个文档每秒,有没有人经历过这个?代码如下。
class Program
{
static void Main(string[] args)
{
ExtractHyperLinks();
}
private static void ExtractHyperLinks()
{
DataContext dc = new DataContext();
var docs = from p in dc.docs
select p;
Regex reUrl = new Regex(@"((https?):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)");
int counter = 0;
foreach (Document d in docs)
{
Match m = reUrl.Match(tweet.Text);
if (m.Success)
{
Hyperlink h = new Hyperlink();
h.Url = m.Value;
dc.Hyperlinks.InsertOnSubmit(h);
dc.SubmitChanges();
Console.WriteLine(h.Url);
}
counter++;
}
}
}
答案 0 :(得分:0)
尝试将foreach循环更改为for i = 0到numOfDocs,然后通过docs [i]获取。另外,什么是反击?