c#ReadToEnd使用大型xml文件降低性能

时间:2012-10-09 09:25:29

标签: c# performance

我从服务中获取了大量的xml文件,而且我遇到了readtoend的一些性能问题,这需要大约2分钟来完成3次replace()和1.3分钟而不使用replace()。

 HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
  using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
{
result = sr.ReadToEnd().Replace("\n", "").Replace("\r", "").Replace("\t", "");   
         sr.Close();
        //ReadToEnd it is taking about 2 minutes to complete 
}

用什么来克服这个性能问题。

被修改 xml文件大小为2.77 MB

1 个答案:

答案 0 :(得分:2)

当你使用.Replace(“\ n”,“”)你实际上复制了整个字符串,在这种情况下你做了3次,一个更好的方法是将它读入String builder并在那里进行替换,你可以还可以一次从字符串构建器中读取和添加一个字符,并跳过不需要的字符。