2011-10-07 66 views
3

我刚来到这里,无论是谷歌还是我的知识都会让我前进。想想下面的情况:我读了很多(高达数百万)大对象(每个500MB),有时我只读了500KB的数百万个对象,这完全取决于我的软件的用户。每个对象都将在流水线中进行处理,因此它们不需要一直处于内存中,只需要一个引用就可以在序列化后在我的硬盘上再次找到对象,以便我可以再次反序列化它。所以它就像大型对象的持久缓存。缓存大型对象并在需要时对它们进行序列化(Java)

所以来到这里,我的问题:

  1. 是否有解决方案(任何框架),这不正是我需要什么?这包括:在以某种方式确定缓存是否已满后对大对象进行任意序列化?

  2. 如果没有:是否有办法以某种方式智能检查天气一个对象应该被序列化或不是?例如以某种方式检查内存大小?或者像软件听众(当它被发布的时候)听众的东西?)。

非常感谢,

基督教

回答

0

存储数百万个对象听起来像一个数据库应用程序。

+0

是。但是在某些时候,我需要在我的“软件”中同时使用很多对象来一起计算它们的批量。这些对象是btw图像。 ;) – user984161

+0

我假设你已经有一个包含文件名等的图像数据结构,但不包含图像数据本身。为什么不将文件(图像数据)存储在磁盘/数据库上并在需要时检索它们? – michael667

+0

其实我都有。图像数据和结构。但是你是对的,这正是我的问题:如何确定我需要序列化一个对象的天气(根据可用内存)。有没有聪明的方法?例如使用softreference会意味着,当我创建或更改它时,我总是需要序列化一个对象,因为我不知道何时Java将它从堆中踢出。或者我可以听听吗? – user984161

0

查看Oracle Coherence。还有一些开源替代品,但是,Coherence是功能最丰富的。

编辑: 当然Coherence Alternatives

+0

感谢您的提示。你能说出一个开源项目吗?实际上我们提供的软件应该是开源的。 – user984161

相关问题