如何提高XML读写性能

use*_*725 5 .net xml performance

我有两个独立运行的.NET应用程序(可以以任何顺序启动,或者可能只运行一个),它使用XML作为数据存储.因此,两个应用程序都可以读写XML文件.为了保持数据更新,我在读取和写入操作之前每次都从磁盘加载XML文件.我正在使用XPath查询来查询特定节点.现在在这个方法中观察到了性能问题,因为每秒都有一个应用程序对XML进行读写请求(使用轮询,并且无法更改)我不确定究竟是什么导致了性能损失,但我相信它是连续的读写.

我尝试使用.NET 4.0中的内存映射文件,但我限制使用.NET 3.5而不是更高版本.

任何人都可以帮我解决这个问题吗?

注意:XML节点具有一些公共属性,不同数量的属性和一个用于XPath查询的ID.

Jir*_*ika 1

尝试以独占方式打开该文件。另一个应用程序可能会崩溃,但如果它没有崩溃,您将肯定知道一件事:它无法在一个周期内对共享文件调用太多 I/O 负载,因为它的所有访问尝试都将立即失败。

希望它会稍等一下并重试,这对您来说应该很有效。

using (Stream iStream = File.Open("myfile.xml",
            FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
    ...
}
Run Code Online (Sandbox Code Playgroud)