Windows 8 HtmlUtilities.ConvertToText速度非常慢

Windows 8 HtmlUtilities.ConvertToText速度非常慢,windows-8,microsoft-metro,windows-runtime,Windows 8,Microsoft Metro,Windows Runtime,我正在做一个简单的应用程序,从XML-RPC服务器获取一些数据,我注意到htmluties.ConvertToText非常慢,下面是在四核机器上进行的测试,需要900毫秒: [TestMethod] public void TestHtmlToStringDogSlow() { string text = @"Zdjelice od dinje Tartar od morskih delicija Salata od ječma Sirni namaz s a

我正在做一个简单的应用程序,从XML-RPC服务器获取一些数据,我注意到htmluties.ConvertToText非常慢,下面是在四核机器上进行的测试,需要900毫秒:

    [TestMethod]
    public void TestHtmlToStringDogSlow()
    {
      string text = @"Zdjelice od dinje
Tartar od morskih delicija
Salata od ječma
Sirni namaz s avokadom
<p>Dosadili su vam uvijek isti namazi? Potpuno vas razumijemo i stoga nudimo namaz od avokada. Za one kojima treba više informacija, glavni su mu sastojci – uz avokado – pinjoli i svježi sir, a neodoljiv je uz prepečenac.</p>
Hladetina
<p>Popularno jelo s kolinja možete poslužiti i kao predjelo svečanog, pa i blagdanskog objeda ili večere, ali i kao samostalno malo jelo.</p>
Jaja u umaku od ajvara
<p>I kad vam nije do maštanja i velikih egzibicija, iz kuhinje možete iznijeti zanimljiva mala iznenađenja posve neočekivana okusa.</p>
Gurmanski zalogajčići
<p>Jelo – dosjetka ne vrednuje se ni brzinom pripreme ni brojem korištenih sastojaka, nego rezultatom. A ovi obogaćeni krekerčići zalogajčići su za bogove.</p>
Pikantni namaz od sira
<p>Dolaze vam gosti ili imate svježega kravljeg sira, a nemate ideju što biste s njime? Načinite vrlo zanimljiv i neuobičajen namaz, koji možete kratko sačuvati i u hladnjaku.</p>
Tuna <em>alla carpaccio</em>
<p>Iako je <em>carpaccio</em> izvorno od sirove zamrznute junetine odnosno govedine, priprema se od različitih namirnica. A pripremate li ga od ribe, ona osobito mora biti vrlo svježa.</p>
Namaz od svježeg sira i gorgonzole
<p>Gorgonzola i začinske trave i običnome sirnom namazu daju fini mediteranski štih. Uz pomno odabran kruh, pa s bademima i orasima, može se poslužiti i u svečanijim prilikama.</p>
Pašteta <em>Twist</em>
<p>Volite li paštete, i u njima možete uživati gurmanski. Idealno za veća okupljanja, za hladan bife.</p>
      ";

      var convertedItems = new List<string>();
      var items = text.Split(new string[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);
      foreach (string oneItem in items)
      {
        string cnv = HtmlUtilities.ConvertToText(oneItem);
        //string cnv = oneItem.Replace("<p>", "").Replace("</p>", "");
        convertedItems.Add(cnv);
      }            
    }
[TestMethod]
public void TestHtmlToStringDogSlow()
{
字符串文本=@“Zdjelice od dinje
塔塔-奥德穆尔斯基-德利西亚酒店
萨拉塔奥德杰马酒店
瑟尼·纳马兹s阿沃卡多姆酒店
多萨迪利·苏瓦姆·乌维杰·乌兹阿沃卡多·阿沃卡达·努迪莫·纳马兹·多萨迪利·乌兹阿沃卡多·平乔利·斯维杰伊先生,一个新多尔吉夫·乌兹普雷佩切纳克的小岛信息中心

赫拉蒂娜 杰罗的平民们都在为斯维坎诺的先驱者祈祷,因为他们的目标是我的生命,而阿里则在为萨莫斯塔诺·马洛·杰罗祈祷

Jaja u umaku od ajvara 我在我的工作岗位上工作,我的工作是在我的工作岗位上工作,我的工作是在我的工作岗位上工作

古曼斯基·扎洛加奇一世 杰洛——我的兄弟科里什蒂尼·萨斯托贾卡(korištenih sastojaka)是一位年轻人,他是一位来自波哥维的奥博加(Obiobagaćeni krekerčići zalogajčići su za bogove

皮坎尼·纳马兹和西拉 多拉泽·瓦姆·戈斯蒂·伊玛特·斯维耶加·克拉夫热格·西拉,一个在诺奥比奇纳马兹(neuobičajen namaz)的维洛·扎尼姆尔吉夫(vrlo zanimljiv i neuobičajen namaz)的小酒馆内的向列型创意,科吉·莫扎特·克拉特科·萨布瓦蒂(koji močete kratko sa

卡帕乔金枪鱼 我是一位来自政府的医生,他是一名医生,他是一名医生,他是一名医生

纳马兹·奥德斯维耶日·西拉·戈尔贡唑 Gorgonzola i začinske trave i običnome sirnom namazu daju fini mediteranskištih.Uz pomno odabran kruh,pa s bademima i orasima,može se poslužiti i u svečanijim prilikama

帕斯提塔扭转 我是一位伟大的艺术家,他是一位伟大的艺术家

"; var convertedItems=新列表(); var items=text.Split(新字符串[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries); foreach(items中的字符串oneItem) { 字符串cnv=htmluties.ConvertToText(一项); //字符串cnv=oneItem.Replace(“”,”).Replace(“

”,”); convertedItems.Add(cnv); } }
我试着注释ConvertToText行并执行simple string.Replace,然后测试只需2毫秒。我非常清楚simple Replace与ConvertToText有很大的不同,只是为了从不同的角度来看问题


所以我的问题是,有没有人在使用htmluties.ConvertToText时体验过这种缓慢?

是的,我也看到过这种情况。我有一个应用程序可以从联合订阅源加载数据。当我使用这种方法时,性能绝对糟糕。相反,我使用regex去掉HTML标记。

是的,我也看到了这一点。我有一个应用程序可以从联合订阅源加载数据。当我使用这种方法时,性能绝对糟糕。相反,我使用正则表达式去掉HTML标记。

您应该使用
WebUtility.HtmlDecode
而不是
htmluties.ConvertToText
。它速度更快,而且不会用空格代替空格。

您应该使用
WebUtility.HtmlDecode
而不是
htmluties.ConvertToText
。它的速度更快,而且不会用空格代替空格字符