Domanda

Sto costruendo un prodotto "Virtualizzazione dell'applicazione".Io uso il file XML come registro virtuale. Le applicazioni virtuali generate dal mio software accedono al registro virtuale XML. Funziona, tuttavia funziona molto lentamente.

Carico e scarica l'XML su ogni chiamata API del Registro di sistema, poiché più processo è filettato dal genitore Accedere uno stesso file di registro.Ciò potrebbe far funzionare la domanda lenta.

Qualcuno può farmi sapere l'alternativa per XML ...

È stato utile?

Soluzione 3

Il suo testo al tempo di trasformazione dell'albero. Ho gestito questo nel mio codice caricando e analizzando XML in tutti i processi, solo dopo che una scrittura si è verificata in nessuno dei processi.

Altri suggerimenti

È possibile utilizzare un database invece.Sarebbe più veloce.SQLite è leggero e potente.

Se lo carica in memoria e lo opera da lì da allora il tuo problema non è XML. Profilo alla tua applicazione per scoprire dove trascorre la maggior parte del tempo. Penso che probabilmente troverai che sta spendendo la maggior parte del tempo alla ricerca dell'articolo che si desidera accedere.

Bene, ovviamente potresti usare sempre il registro reale, che è sicuro e veloce ...

Altrimenti, dovrai creare un processo separato che gestisce il registro XML virtuale, mantenendo la struttura XML in memoria, quindi non deve leggere / scriverlo tutto il tempo.Quindi i processi che devono accedere possono utilizzare IPC per comunicare con il processo di registro.

Un'altra idea, se non è probabile che i processi multipli aggiornino il registro tutto il tempo: mantieni il registro XML virtuale in memoria e scriverlo su disco quando viene modificato, ma asincrono tramite un thread di sfondo.Quando si accede al Registro di sistema, verificare innanzitutto se il file è stato modificato;In caso contrario, non è necessario ricaricarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top