XML как виртуальный реестр делает приложение работать медленно
-
12-11-2019 - |
Вопрос
Я создаю продукт «Виртуализация приложений».Я использую XML-файл как виртуальный реестр. Виртуальные приложения, генерируемые из моего программного обеспечения, обращаются к виртуальному реестру XML. Это работает, однако работает очень медленно.
Я загружаю и выгрузите XML на каждые вызовы реестра API, поскольку несколько процессов, резьгов из родительского доступа к одному и тому же файлу реестра.Это может привести к тому, что приложение работает медленно.
Может ли кто-нибудь дать мне знать альтернативу для XML ...
Решение 3
его текст к времени преобразования дерева. Мне удалось это в моем коде, загрузка и разбирая XML во всех процессах, только после того, как запись произошла в любом процессе.
Другие советы
Вы можете использовать базу данных вместо этого.Это было бы быстрее.SQLite легкий и мощный.
Если вы загрузите его в память и работаете на нем оттуда, то ваша проблема не XML. Профиль вашего приложения, чтобы узнать, где он проводит большую часть времени. Я думаю, что вы, вероятно, найдуте ее, большая часть времени в поисках времени, который вы хотите получить доступ.
Ну, вы, конечно, могли, конечно, всегда использовать реальный реестр, который является безопасной и быстрой и быстрой ...
В противном случае вам придется создать отдельный процесс, который управляет вашим виртуальным реестром XML, сохраняя структуру XML в памяти, поэтому его не нужно читать / писать все это время.Затем процессы, которые должны получить доступ к ним, могут использовать IPC для связи с процессом реестра.
Другая идея, если несколько процессов вряд ли обновляются реестр все время: храните реестр виртуального XML в памяти и запишите его на диск при изменении, но асинхронно через фоновую нить.При доступе к реестру сначала проверьте, был ли файл изменен;Если нет, вам не нужно перезагружать его.