我考虑到端口到db4o的应用程序。数据模型包含大量有很多相互之间的引用的小物件的。例如,我有一本书,它指向一个作者和章节。章节有部分,部分具有文本,图像的大斑点,并且它们提到的参考字符。

我觉得应该是能够保持元结构在内存中(除文本斑点的一切),但我不知道我是否可以使用一些巧妙的技巧,涉及的WeakReference这样的db4o只想保持模型的一部分内存,我真的需要(即我最近使用的)。

同样是真实的文本斑点(它应该是周围1-10KB)。是否有可能得到一个字符串,而不必担心DB层,而不必查询使用getter中并没有使用硬引用这使整个文本内存中的所有时间的人工ID文本BLOB?

有帮助吗?

解决方案

关闭在WeakReferences主要用于性能调谐。这种方法的缺点是不容忽视的 - 所以要小心。我不会推荐它。

控制存储器使用应该使用激活特征来进行。激活可以帮助你保持你只有模型的一部分,在内存中,在WeakReferences将帮助您GC对象不再使用。我认为这是一段路要走。

此外 - 您可以将问题发布到db4o论坛摆脱对db4o社区的帮助

戈兰

其他提示

我没有用DB40或任何ORM /面向对象数据库产品最近,但它会打我,这种内存管理和图形管理功能应该是框架本身的一部分,而不是你的东西建立在它之上。如果Versant的DB40不提供此它可能是值得你寻找到另一种产品替代,它提供它。所以,我知道没有答案你寻找,但利用该框架将是我的第一个停靠港。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top