LRU LinkedHashMap, die die Größe basierend auf dem verfügbaren Speicher begrenzt
Ich möchte eine LinkedHashMap erstellen, deren Größe auf der Grundlage des verfügbaren Speichers (z. B. wann) begrenzt wirdfreeMemory + (maxMemory - allocatedMemory)
eine bestimmte Schwelle unterschreitet). Dies wird als eine Form von Cache verwendet, wobei wahrscheinlich "zuletzt verwendet" als eine Caching-Strategie verwendet wird.
Mein Anliegen ist jedoch, dass allocatedMemory auch nicht überflüssig gesammelte Daten enthält (ich nehme an) und somit die Menge des verwendeten Speichers überschätzt. Ich bin besorgt über die unbeabsichtigten Konsequenzen, die dies haben könnte.
Beispielsweise löscht die LinkedHashMap möglicherweise weiterhin Elemente, weil sie denkt, dass nicht genügend freier Speicher vorhanden ist. Der freie Speicher erhöht sich jedoch nicht, da diese gelöschten Elemente nicht sofort über den Müll gesammelt werden.
Hat jemand irgendwelche Erfahrungen mit dieser Art von Dingen? Ist meine Sorge berechtigt? Wenn ja, kann jemand einen guten Ansatz vorschlagen?
Ich sollte hinzufügen, dass ich auch in der Lage sein möchte, den Cache zu "sperren" und im Grunde "OK" sage, von nun an lösche ich nichts mehr aufgrund von Speicherproblemen.