![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
oson |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 289 Регистрация: 3.3.2004 Где: Севастополь Репутация: нет Всего: 1 |
Как реализовать такую фичу.
Есть класс SessionsKeeper, у которого есть List<Session> sessions. Session - это мой класс, который содержит поля id,sessionAttributes, expireDate и тп. Когда новый клиент заходит в систему, то создается новый объект класса Session и помещается в в список sessions в классе SessionsKeeper. SessionsKeeper - это singleton, который содержит список сессий для всего приложения. Периодически запускается scheduler, который удаляет из списка sessions те сессии, у которых expireDate уже больше текущей даты. Если количество сессий будет увеличиваться, у меня возникнет проблема с нехваткой памяти. 1. Как можно измерить размер объекта SessionsKeeper? 2. Как лучше реализовать кеширование этого объекта на жесткий диск (при достижении заданного размера) и считывания оттуда при запросе объекта SessionsKeeper? |
|||
|
||||
Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 5 Всего: 191 |
Можно попробывать getObjectSize
Кэширование на ФС это кэш второго уровня. В Hibernate применяют ehcache, думаю в твоей ситуации его тоже можно применить |
||||
|
|||||
oson |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 289 Регистрация: 3.3.2004 Где: Севастополь Репутация: нет Всего: 1 |
Спасибо.
|
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 5 Всего: 75 |
oson, мне кажется Вы велосипед изобретаете. Посмотрите на Guava cache. Он легкий и умеет все, что Вы пытаетесь реализовать: удаление элементов по времени, по количеству, слабые ссылки, что бы не съесть слишком много памяти - все там работает из коробки.
-------------------- Opinions are like assholes — everybody has one |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
+1 за Guava. Хотя из коробки он на диск сохранять и не умеет, но можно повесить лисенеры на загрузку-вугрузку значений из кеша, и реализовать эту логику в них.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |