Возможно ли удалить данные из кеша, когда доступная оперативная память рядом с переполнением?Реализация кеша ниже:
Cache<String, Cache<String, List<String>>> cache = CacheBuilder.newBuilder()
.maximumWeight((int) ((Runtime.getRuntime().totalMemory() / 1024) * 0.9))
.weigher((Weigher<String, Cache<String, List<String>>>) (key, val) -> runtimeMemory())
.build();
public static int runtimeMemory() {
long totalMemory = Runtime.getRuntime().totalMemory() / 1024;
long freeMemory = Runtime.getRuntime().freeMemory() / 1024;
return (int) (totalMemory - freeMemory);
}
Это работа или нет?Или weigher суммирует runtimeMemory () для каждого значения?