我有一堆较大的对象(一个复杂的类,可以被序列化),还有一个运算算法。该算法需要多次对每个对象进行操作,但每次只需要使用其中几个对象。
为了节省内存,如果没有足够的内存,我希望将长时间未使用的对象缓存到磁盘上。算法需要知道哪些对象在磁盘上,以便尽可能地避免使用它们。
如何实现这一点?我是否需要自己实现,或者是否有现成的库可用?
编辑:
由于我会尽快丢弃这些对象,所以我的对象不会超过几百个。每个对象(简化描述)包含一个最多有256x256个元素的二维数组。请考虑主数组的平均负载约为30%,子数组大部分时间都是满的。 数组中的每个对象都包含一些较小的数据:几个向量的数组列表,一个属性HashMap等。我已通过实例化将大部分数据外置,因此数据相当小。
为了节省内存,如果没有足够的内存,我希望将长时间未使用的对象缓存到磁盘上。算法需要知道哪些对象在磁盘上,以便尽可能地避免使用它们。
如何实现这一点?我是否需要自己实现,或者是否有现成的库可用?
编辑:
由于我会尽快丢弃这些对象,所以我的对象不会超过几百个。每个对象(简化描述)包含一个最多有256x256个元素的二维数组。请考虑主数组的平均负载约为30%,子数组大部分时间都是满的。 数组中的每个对象都包含一些较小的数据:几个向量的数组列表,一个属性HashMap等。我已通过实例化将大部分数据外置,因此数据相当小。