Pregunta

Tengo un modelo de datos con un esqueleto (metadatos) y objetos de datos de gran tamaño. Me gustaría mantener el esqueleto en la memoria y mantener referencias débiles a los objetos de datos. Entiendo cómo iba a poner en práctica esta sencilla con Java, cómo iba a crear un WeakHashMap y limpiar etc, pero me pregunto cuál sería la mejor manera de resucitar a los objetos de datos después de que hayan sido GC'd?

¿Debo agregar una clave técnica a mi mapa que le asigno a un campo en el objeto de datos, por lo que puedo encontrar de nuevo? O debería llamar db.ext (). GetId () y utilizar este identificador como la clave técnica? Si es así, ¿cómo iba a conseguir estas teclas cuando se carga el padre? ¿Qué sugieres?

¿Fue útil?

Solución

Me gustaría añadir una clave técnica a su gran datos a objetos. A continuación, se almacena esta clave técnica en su-clase de metadatos. Ahora, cuando usted consigue la gran técnica de objeto se obtiene por ella es clave técnica. Que una solución bastante sencilla.

Db4o realmente utiliza referencias débiles para devolver el mismo objeto y evitar la innecesaria deserialización. Así que cuando se pide un objeto y no ha sido recogida por el GC, db4o devolverá el mismo objeto.

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