ネットワーク共有やインターネットからのダウンロードを高速化するために、画像のキャッシュを実行しています。現在、このキャッシュはメモリ内にあります。
オブジェクトの深いサイズ (事前BufferedImageSize) によってキャッシュを制限することは可能ですか?
キャッシュは次のように初期化されます
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
....
imageCache = CacheBuilder.newBuilder()
.maximumSize(cacheSize)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build(
new CacheLoader<String, DeferredImage>() {
public DeferredImage load(String pathname) throws IOException {
return new DeferredImage(pathname);
}
});
別のスレッドでの読み込みを容易にするDeferredImageラッパーはどこにありますか。BufferedImage
キャッシュ内のエントリ数ではなく、バイト単位のサイズを考慮したサイズ チェックをコーディングすることは可能ですか?
アップデート
maximumWeight() メソッドを見つけましたが、これが探しているものかどうかわかりませんでした。ドキュメントには、重みの合計が計算されるとはどこにも記載されていません。