Это похоже на действительно плохую идею по реализации, и я не уверен в экономии скорости, учитывая потенциальную стоимость в памяти.
Использование Dalli и Memecache для хранения набора данных, которые извлекаются на каждомзапрос страницы, который должен быть разбит на страницы.В нем много данных, поэтому я бы предпочел не продолжать использовать базу данных, если это возможно, но я также не знаю, насколько дорогой является эта операция для памяти, как в memcache, так и просто в системной памяти.Чтобы разбить на страницы, я делаю в основном следующее:
- Вызов в memcache, чтобы увидеть, существуют ли данные данные
- Если найдены, получить данные и перейти к 4.
- Еслине найден, получить из базы данных и кеша
- Дуп объект , потому что объект заморожен.??<- кажется очень плохой идеей ... </li>
- Возвращать разбитые на страницы данные для отображения.
WillPaginate должен выполнять действия с набором данных, выходящим изБД, но выдает ошибку «невозможно изменить замороженный объект».
Насколько это плохо?dup
- если большой объект (который кешируется для экономии времени при обращениях к БД), похоже, что он в конечном итоге потребляет много дополнительной памяти и запускает GC намного больше, чем необходимо.Кто-нибудь предлагает какие-то способы обойти это?