C# 如何在传递参数以加载和保存时提高XMLDocument性能
我正在努力提高我的web和桌面应用程序的性能。我的web和win表单应用程序都用于读取和写入xml文件。但我仍然不清楚我用什么来提高应用程序的性能C# 如何在传递参数以加载和保存时提高XMLDocument性能,c#,xml,C#,Xml,我正在努力提高我的web和桌面应用程序的性能。我的web和win表单应用程序都用于读取和写入xml文件。但我仍然不清楚我用什么来提高应用程序的性能 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileStream); xmlDoc.Save(fileStream); 所以,我传递给加载和保存函数的参数类型是什么,即它可能是filestream对象,也可能只是文件名。因此,应用程序的性能得到了提高。您确定吗,您的性能瓶颈在于Xml加载,
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileStream);
xmlDoc.Save(fileStream);
所以,我传递给加载和保存函数的参数类型是什么,即它可能是filestream对象,也可能只是文件名。因此,应用程序的性能得到了提高。您确定吗,您的性能瓶颈在于Xml加载,如果是这样,请尝试将其放在不同的线程中 或 如果文档太大,并且您试图只加载部分项目,请尝试以下操作
我不建议使用XmlDocument xmlDoc=new XmlDocument;因为有一种更好更干净的方法可以使用 XDocument xmlDoc=新XDocument;提供更轻松的实施和未来的总体更改 然后你可以用
doc.Load("PurchaseOrder.xml");
或者,如果您是从web下载,我建议您将Async与weblcient结合使用
WebClient wclient = new WebClient();
wclient.DownloadStringAsync(new Uri("url of your xml"));
wclient.DownloadStringCompleted += FilesIsCompleted;
private void FilesIsCompleted(object sender, DownloadStringCompletedEventArgs e)
{
XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None);
}
刚刚意识到,jon skeet为不同的线程引用了同一篇文章,因此应该是一篇非常可靠的文章: