膨大な量のデータを完全にキャッシュするアプリケーションがあります。キャッシュは静的マップとして維持されます。
データはいくつかのバッチ サイクルで毎日変更されるため、データが変更された後にキャッシュを更新します。キャッシュの更新は、新しいオブジェクトを作成し、静的変数をこれらの新しいオブジェクトに参照することによって行われます。したがって、毎日新しいオブジェクトが作成され、古いオブジェクトは逆参照されます。
しかし、問題は、サーバー ヒープ メモリがメモリ例外なしでクラッシュするまで増加し続けることです。
逆参照されたオブジェクトがガベージコレクションされているかどうかは本当に疑問です。
これは私のクラスです。
Class CacheService {
public static Map<String,Article> articleCache = null;
public docache(){
private Map<String,Article> tempArticleCache= new HashMap<String,Article>();
//Caching stuff
//finally
articleCache = tempArticleCache; // i hope defreferencing takes place here.
}
}
関数 docache() は、キャッシュを更新するために毎日呼び出されます。この問題なしでキャッシングを実現するのを手伝ってくれる人はいますか。