Pergunta

Eu estou considerando a possibilidade de ligar uma aplicação para DB4O. O modelo de dados é composto por lotes de pequenos objetos com um monte de referências entre si. Por exemplo, eu tenho um livro que aponta para um autor e um capítulo. Os capítulos têm seções, seções têm grandes bolhas de texto, imagens, e eles fazem referência personagens mencionados.

Eu acho que deveria ser possível manter a estrutura de meta na memória (tudo, exceto as bolhas de texto), mas eu estava me perguntando se eu poderia usar algum truque inteligente envolvendo WeakReference tão db4o seria apenas manter a parte do modelo na memória que eu realmente precisa (ou seja, que eu tenho usado recentemente).

O mesmo é verdadeiro para as bolhas de texto (que deve ser em torno de 1-10KB). É possível obter uma String sem ter que se preocupar com a camada de banco de dados e sem a necessidade de consulta para o blob de texto usando um ID artificial dentro do getter e sem utilizar uma referência duro que mantém todo o texto na memória o tempo todo?

Foi útil?

Solução

Desligar WeakReferences é usado principalmente para o desempenho ajuste . As desvantagens para esta abordagem não são desprezíveis - por isso tenha cuidado. Eu não recomendo.

uso de memória Controlling deve ser feito usando ativação recursos . A ativação pode ajudá-lo a manter apenas parte de você modelar na memória e WeakReferences irá ajudá-lo a GC não objetos usados. Eu acho que é o caminho a percorrer.

Além disso -. Você pode enviar suas perguntas para db4o fóruns para obter ajuda da comunidade db4o

Goran

Outras dicas

Eu não usei DB40, ou qualquer produto ORM / OODB recentemente, no entanto, ele iria me atacar que este tipo de gerenciamento de memória e recurso de gerenciamento gráfico deve ser parte da própria estrutura, em vez de algo que se constrói em cima dela. Se DB40 da Versant não oferece este pode valer a pena você olhar para outro produto vez que não oferecem isso. Então, eu percebo não é a resposta que procura, mas aproveitando o quadro seria o meu primeiro porto de escala.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top