Я ищу некоторые идеи, и, возможно, уже какую-то конкретную реализацию, если кто-то знает, но я готов самостоятельно написать желаемый кеш.
Я хочу иметь кеш, который кеширует столько раз, сколько я сконфигурирую. По сравнению с остальной частью приложения часть кэша будет использовать почти 100% памяти, поэтому мы можем обобщить используемую память приложения, имеющего размер кэша (+ мусор).
Существуют ли методы для определения того, сколько памяти используется? Или лучше полагаться на мягкие указатели? Программный указатель и работа всегда в верхней части лимита памяти jvm могут быть очень неэффективными с большим количеством циклов процессора для очистки памяти? Могу ли я провести некоторый анализ существующих объектов, например myObject.getMemoryUsage()
?
LinkedHashMap
имеет достаточно попаданий в кеш для моей цели, поэтому мне не нужно кодировать какого-то стратегического кеширующего монстра, но я не знаю, как правильно решить эту проблему с памятью. Есть идеи? Я не хочу, чтобы ООМ летал куда-либо.
Какая самая лучшая практика?