XML как виртуальный реестр делает приложение работать медленно

StackOverflow https://stackoverflow.com/questions/4978126

Вопрос

Я создаю продукт «Виртуализация приложений».Я использую XML-файл как виртуальный реестр. Виртуальные приложения, генерируемые из моего программного обеспечения, обращаются к виртуальному реестру XML. Это работает, однако работает очень медленно.

Я загружаю и выгрузите XML на каждые вызовы реестра API, поскольку несколько процессов, резьгов из родительского доступа к одному и тому же файлу реестра.Это может привести к тому, что приложение работает медленно.

Может ли кто-нибудь дать мне знать альтернативу для XML ...

Это было полезно?

Решение 3

его текст к времени преобразования дерева. Мне удалось это в моем коде, загрузка и разбирая XML во всех процессах, только после того, как запись произошла в любом процессе.

Другие советы

Вы можете использовать базу данных вместо этого.Это было бы быстрее.SQLite легкий и мощный.

Если вы загрузите его в память и работаете на нем оттуда, то ваша проблема не XML. Профиль вашего приложения, чтобы узнать, где он проводит большую часть времени. Я думаю, что вы, вероятно, найдуте ее, большая часть времени в поисках времени, который вы хотите получить доступ.

Ну, вы, конечно, могли, конечно, всегда использовать реальный реестр, который является безопасной и быстрой и быстрой ...

В противном случае вам придется создать отдельный процесс, который управляет вашим виртуальным реестром XML, сохраняя структуру XML в памяти, поэтому его не нужно читать / писать все это время.Затем процессы, которые должны получить доступ к ним, могут использовать IPC для связи с процессом реестра.

Другая идея, если несколько процессов вряд ли обновляются реестр все время: храните реестр виртуального XML в памяти и запишите его на диск при изменении, но асинхронно через фоновую нить.При доступе к реестру сначала проверьте, был ли файл изменен;Если нет, вам не нужно перезагружать его.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top