Domanda

Sto considerando il porting di un'applicazione per db4o. Il modello di dati è costituito da un sacco di piccoli oggetti con un sacco di riferimenti tra di loro. Per esempio, ho un libro che punta a un autore e il capitolo. I capitoli hanno sezioni, le sezioni hanno grandi macchie di testo, immagini, e fanno riferimento personaggi citati.

Credo che dovrebbe essere possibile mantenere la struttura meta in memoria (tutto tranne le macchie di testo), ma mi chiedevo se potevo usare qualche trucco intelligente che coinvolge WeakReference così db4o sarebbe solo mantenere la parte del modello in memoria che ho davvero bisogno (cioè che ho usato di recente).

Lo stesso vale per i BLOB di testo (che dovrebbe essere intorno 1-10KB). E 'possibile ottenere una stringa, senza doversi preoccupare del livello DB e senza dover eseguire una query per il blob di testo utilizzando un ID artificiale all'interno del getter e senza utilizzare un riferimento concreto, che mantiene tutto il testo in memoria per tutto il tempo?

È stato utile?

Soluzione

La disattivazione WeakReferences è usato soprattutto per le prestazioni sintonizzazione . Gli svantaggi di questo approccio non sono trascurabili - quindi state attenti. Io non lo consiglio.

Controllare l'utilizzo della memoria dovrebbe essere fatto utilizzando caratteristiche di attivazione . L'attivazione può aiutare a mantenere solo una parte di te modello nella memoria e WeakReferences vi aiuterà GC non è più oggetti usati. Penso che sia la strada da percorrere.

Inoltre - potete inviare le vostre domande a db4o forum per ottenere aiuto da parte della comunità db4o

.

Goran

Altri suggerimenti

non ho usato DB40, o qualsiasi / prodotto OODB ORM di recente, tuttavia sarebbe mi sembra che questo tipo di gestione della memoria e funzionalità di gestione grafico dovrebbe essere parte del quadro stesso, piuttosto che qualcosa che si costruisce su di esso. Se DB40 di Versant non offre questo forse vale la pena si cerca in un altro prodotto, invece che non lo offrono. Così, mi rendo conto che non è la risposta alla tua ricerca, ma sfruttando il quadro sarebbe stato il mio primo porto di scalo.

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