XML作为虚拟注册表使应用程序工作慢
-
12-11-2019 - |
题
我正在构建“应用程序虚拟化”产品。我使用XML文件作为虚拟注册表。 从我的软件生成的虚拟应用程序访问虚拟注册表XML。 它运行,但运行很慢。
我在每个注册表API调用上加载并卸载XML,因为从父级接入多个进程访问相同的注册表文件。这可能导致应用程序慢速。
可以让我知道XML ... 的替代方案
解决方案 3
它是树形转换时间的文本。 我通过加载并在所有进程中解析XML在所有进程中进行解析,只有在任何一个过程中发生时,请在我的代码中进行管理。
其他提示
您可以使用数据库。它会更快。SQLite是轻巧和强大的。
如果将其加载到内存中并从中操作,那么您的问题不是XML。 配置您的申请,以了解它的大部分时间。 我认为你可能会发现它的时间大部分时间都在搜索要访问的项目。
好吧,您当然可以始终使用真正的注册表,这是线程安全和快速...
否则,您必须创建一个单独的进程管理虚拟XML注册表,将XML结构保持在内存中,因此它不必一直读/写它。然后需要访问它的进程可以使用IPC与注册表进程通信。
另一个想法,如果多个进程一直不太可能更新注册表:将虚拟XML注册表保留在内存中,并在更改时将其写入磁盘,但通过背景线程异步。访问注册表时,首先检查文件是否已更改;如果没有,您不需要重新加载它。
不隶属于 StackOverflow