私はかなり大きなオブジェクト(複雑なクラスとシリアライズ可能にすることができます)とそのアルゴリズムを操作しています。このアルゴリズムは、各オブジェクトに対して何回も動作しなければならず、一度にコレクションのいくつかのオブジェクトしか必要としない。ディスクへのJavaキャッシュオブジェクト
RAMを節約するために、私はもう十分なメモリがない場合、ディスクにアルゴリズムによってしばらく使われなかったオブジェクトをキャッシュしたいと思います。アルゴリズムは、どのオブジェクトがディスク上にあるかを知る必要があるため、可能な限りそれらを避けることができます。
どうすればよいですか?これを自分で実装する必要があるのですか、既存のライブラリがありますか?
編集:私はできるだけ早くそれらを破棄するので
私はおそらくそれらのオブジェクトの数百以上のものを持っていません。各オブジェクト(簡略化された説明)には、最大256×256要素の2D配列が含まれています。メインアレイの平均負荷は約30%、子アレイはほとんどの場合ほぼ完全であると考えてください。配列内の各オブジェクトには、より小さなデータが含まれています。ベクトルを含む配列リスト、プロパティHashMapなどがあります。ほとんどのデータをインスタンス化してアウトソーシングしたので、かなり小さくなっていました。
これまでにも、何個のオブジェクトについて話していますか?彼らのクラスはどのように見えますか? –
Apacheコモンズにはキャッシュライブラリがあります:http://commons.apache.org/dormant/cache/ – brummfondel
ここで参照できますhttp://www.ehcache.org/documentation/2.7/configuration/fast-restart.html – developer