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

我在每个注册表API调用上加载并卸载XML,因为从父级接入多个进程访问相同的注册表文件。这可能导致应用程序慢速。

可以让我知道XML ... 的替代方案

有帮助吗?

解决方案 3

它是树形转换时间的文本。 我通过加载并在所有进程中解析XML在所有进程中进行解析,只有在任何一个过程中发生时,请在我的代码中进行管理。

其他提示

您可以使用数据库。它会更快。SQLite是轻巧和强大的。

如果将其加载到内存中并从中操作,那么您的问题不是XML。 配置您的申请,以了解它的大部分时间。 我认为你可能会发现它的时间大部分时间都在搜索要访问的项目。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top