Question

I ai un modèle de données avec un squelette (métadonnées) et les gros objets de données. Je voudrais garder le squelette en mémoire et maintenez faibles références aux objets de données. Je comprends comment je mettre en œuvre cette Java ordinaire, comment je voudrais créer un WeakHashMap et nettoyer, etc. Mais je me demande quelle serait la meilleure façon de ressusciter les objets de données après leur GC'd?

Dois-je ajouter une clé technique à ma carte que je cède à un champ dans l'objet de données, donc je peux le trouver à nouveau? Ou devrais-je appeler db.ext (). GetId () et utiliser cet ID comme la clé technique? Si oui, comment pourrais-je obtenir ces clés lors du chargement du parent? Que proposez-vous?

Était-ce utile?

La solution

Je voudrais ajouter une clé technique à votre gros volumes de données objet. Ensuite, vous enregistrez cette clé technique dans votre méta-données de classe. Maintenant, quand vous obtenez la grande données objet que vous obtenez par sa clé technique. Ce tout à fait une solution simple.

db4o utilise en fait des références faibles pour retourner le même objet et éviter désérialisation inutile. Ainsi, lorsque vous demandez un objet et n'a pas été recueilli par le GC, db4o retourne le même objet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top