私は、httpでの高速アクセスのためにメモリに画像データ(jpgs、pngs、tiffなど)をキャッシュするキャッシュサーバーをJavaで作成しています。イメージは、高価な操作である別のサービスによってレンダリングされるので、キャッシュサーバーにキャッシュします。Javaと仮想メモリ:どのオブジェクトがメインメモリに保持されているかの制御/影響?
あり、私は最初からそれを書いている理由はいくつかあるので、私が探している答えは、[いくつかの巧妙なソフトウェア製品]
質問ではありません。私は、データの特定のセットを維持することができますどのようにメインメモリ内のオブジェクトを削除し、必要なときにデータがメインメモリに実際に存在することを確認し、仮想メモリマネージャによってディスクにプッシュされないようにします。つまり、私はどのようにJavaでこれを行うことができますか?
詳細情報:オブジェクトは任意の間隔で参照できます。 日または少し極端:-)する年離れてを言う
EDIT:私は尋ねた。このSO postを発見した「あなたは連続したメモリ内のオブジェクトを保持することができますか?」 - これは私が求めている質問ではありませんが、オブジェクトが常に参照されていれば助けになると思います。そして、btw、その質問への答えは、明らかに配列の値の型を除いて、 "いいえ"でした。
「イメージが高価な操作で別のサービスによってレンダリングされたので、私は私のキャッシュサーバ上にキャッシュしたいです。」 *何が高価な操作ですか?レンダリング、ネットワーク転送、またはディスクアクセス?キャッシュサーバが遠隔からアクセスされる場合、例えば、 HTTP経由でのキャッシュは、ボトルネックではないディスクアクセスを回避するのに役立ちます。 –
あなたの実装は、既存のキャッシュライブラリ/フレームワーク/システム/アプリケーションのどれがそうしないでしょうか? –
CPUに関しては高価です。 –