Frage

Ich erwäge in dem Hafen eine Anwendung db4o. Das Datenmodell besteht aus vielen kleinen Objekten mit vielen Referenzen untereinander. Zum Beispiel habe ich ein Buch, das einen Autor und Kapitel verweist. Die Kapitel haben Abschnitte, Abschnitte haben große Blobs von Texten, Bildern, und sie verweisen Zeichen genannt.

ich denke, es möglich sein soll, die Meta-Struktur im Speicher (alles außer dem Text Blobs) zu halten, aber ich habe mich gefragt, ob ich ein paar cleveren Trick WeakReference Beteiligung nutzen könnte so db4o würde nur den Teil des Modells in Erinnerung behalten, dass ich wirklich brauchen (dh, die ich habe vor kurzem verwendet wird).

Das gleiche gilt für den Text Blobs (die um 1-10KB sein sollen). Ist es möglich, einen String zu erhalten, ohne über die DB-Schicht zu kümmern und ohne für den Text Blob Abfrage mit einer künstlichen ID innerhalb des Getter zu verwenden und ohne eine harte Referenz verwendet, die den gesamten Text im Speicher der ganze Zeit hält?

War es hilfreich?

Lösung

Ausschalten WeakReferences hauptsächlich für die Leistung verwendet wird, Tuning . Die Nachteile dieses Ansatzes sind nicht zu vernachlässigen - so vorsichtig sein. Ich würde es nicht empfehlen.

Controlling Speicherauslastung sollte mit getan werden Aktivierung Funktionen . Die Aktivierung kann nur ein Teil halten helfen Ihnen in Erinnerung modellieren und weakreferences helfen Ihnen GC-Objekte nicht mehr verwendet. Ich denke, das ist der Weg zu gehen.

Auch -. Sie Ihre Fragen zu DB4O Foren veröffentlichen können Hilfe von der db4o Community erhalten

Goran

Andere Tipps

Ich habe nicht DB40 oder jedes ORM / OODB Produkt vor kurzem verwendet, jedoch würde es mir treffen, dass diese Art der Speicherverwaltung und Graph-Management-Funktion soll einen Teil des Rahmens selbst eher als etwas, das Sie es auf zu bauen sein. Wenn Versant DB40 dies nicht bieten könnte es sich lohnen, die Sie in ein anderes Produkt suchen, anstatt das Angebot es tut. Also, merke ich nicht die Antwort Ihre Suche, sondern nutzt das Framework wäre meine erste Anlaufstelle sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top