4

我正在构建一个“应用程序虚拟化”产品。我使用 XML 文件作为虚拟注册表。从我的软件生成的虚拟应用程序访问虚拟注册表 Xml。它运行,但运行速度非常慢。

我在每个注册表 API 调用上加载和卸载 XML,因为从父线程线程化的多个进程访问同一个注册表文件。这可能会导致应用程序运行缓慢。

任何人都可以让我知道 XML 的替代方案...

4

4 回答 4

1

您可以改用数据库。它会更快。Sqlite 轻巧而强大。

于 2011-02-14T01:52:40.683 回答
0

如果您将其加载到内存中并从那里对其进行操作,那么您的问题就不是 XML。分析您的应用程序以找出它花费最多时间的地方。我想您可能会发现它花费了大部分时间来搜索您想要访问的项目。

于 2011-02-12T14:18:30.370 回答
0

其文本到树的转换时间。我在我的代码中通过在所有进程中加载​​和解析 XML 来管理这个,只有在任何一个进程中发生写入之后。

于 2011-02-17T07:17:35.700 回答
0

好吧,您当然可以始终使用真正的注册表,它是线程安全且快速的......

否则,您必须创建一个单独的进程来管理您的虚拟 XML 注册表,将 XML 结构保存在内存中,这样它就不必一直读/写它。然后需要访问它的进程可以使用IPC与注册进程进行通信。

另一个想法,如果多个进程不可能一直更新注册表:将虚拟 XML 注册表保存在内存中,并在更改时将其写入磁盘,但通过后台线程异步写入。访问注册表时,首先检查文件是否被更改;如果没有,您不需要重新加载它。

于 2011-02-17T07:24:52.690 回答