Pregunta

Estoy construyendo un producto de "virtualización de aplicaciones".Utilizo el archivo XML como un registro virtual. Las aplicaciones virtuales generadas a partir de mi software acceden al Registro Virtual XML. Se ejecuta, sin embargo, corre muy lento.

Cargo y descargo el XML en todas las llamadas de la API de registro, ya que múltiples procesos se roscados del padre Acceda a un mismo archivo de registro.Esto puede hacer que la aplicación se ejecute lenta.

¿Puede alguien que me permita saber la alternativa para XML ...

¿Fue útil?

Solución 3

su texto a la transformación del árbol. Logré esto en mi código cargando y analizando el XML en todos los procesos, solo después de que se haya producido una escritura en cualquiera de los procesos.

Otros consejos

Puede usar una base de datos en su lugar.Sería más rápido.SQLite es ligero y potente.

Si lo carga en la memoria y funciona desde allí, entonces su problema no es XML. Perfil Su solicitud para averiguar dónde está gastando la mayor parte del tiempo. Creo que probablemente encontrará que está gastando la mayor parte de su tiempo buscando el artículo que desea acceder.

Bueno, por supuesto, siempre podría usar el registro real, que es seguro de hilo y rápido ...

De lo contrario, tendría que crear un proceso separado que administre su registro XML virtual, manteniendo la estructura XML en la memoria para que no tenga que leerlo / escribirlo todo el tiempo.Luego, los procesos que necesitan acceder a ella pueden usar IPC para comunicarse con el proceso de registro.

Otra idea, si es probable que los múltiples procesos actualicen el registro todo el tiempo: mantenga su registro virtual XML en la memoria y escríbelo al disco cuando se cambia, pero asíncrona a través de un hilo de fondo.Al acceder al Registro, primero verifique si el archivo ha sido cambiado;Si no, no necesita volver a cargarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top