2010-10-18 5 views
1

Это похоже на действительно плохую идею по реализации, и я не уверен в экономии скорости, учитывая потенциальную стоимость памяти.Memcache для разбивки на страницы

Использование Dalli и Memecache для хранения набора данных, которые извлекаются на каждый запрос страницы, который должен быть разбит на страницы. Его много данных, поэтому я бы предпочел не продолжать попадание в базу данных, если это возможно, но я также не знаю, насколько дорого стоит эта операция для памяти, как в memcache, так и в системной памяти. Для постраничного, я в основном следующий:

  1. Позвоните, чтобы увидеть кэш, если даны данные существуют
  2. Если найдено, получить данные и перейти к 4.
  3. Если не найдено, получить из базы данных и кэша
  4. Dup объект потому что объект заморожен. ?? < - кажется очень плохой идеей ...
  5. Вернуть разбитые на страницы данные для отображения.

WillPaginate должен выполнить действия по набору данных, выходящим из БД, но он выдает ошибку «не может изменить замороженный объект».

Насколько это плохо? dup -В большом объекте (который кэшируется, чтобы сэкономить время при звонках на db) кажется, что он в конечном итоге пережевывает много дополнительной памяти и запускает GC намного больше, чем нужно. Кто-нибудь предлагает некоторые способы обойти это?

ответ

0

Вместо работы с объектами в представлении «Модель/Список» вы также можете кэшировать визуализированный html. Вы можете даже предварительно кэшировать содержимое для дополнительного повышения :)

Смежные вопросы