Задать вопрос
@armenka29
Программист, бизнесмен

PHP как быстро кешировать большой массив?

Значит есть массив категорий, который генерируется так
1. сначала запрос из БД 40мс (1мс если кешировала mysql его)
2. fetchrow это 30-35мс
3. само построение дерева категорий 70мс - как не оптимизировал снизить это время не могу

тоесть вся функция построения дерева обычно это 130-200мс в зависимости от посещения

ну что я решил, а давай его замемкешу - поставил memcached
загрузка массива из мемкеша! почти 120мс выигрыш смешной
потом думал у меня ssd а давай его jsondecode - получилось даже быстрее memcached но все равно под 100мс
я это к чему, к тому что генерация средствами php происходит быстрее чем загрузка этого массива

я и подумал, а нельзя как то оставить этот массив постоянно в памяти? и обращаться к нему из php
Наверно бред сакзал) ну я уже все перепробовал,
посоветуйте как кешировать можно быстро. я хотел бы чтобы этот массивчик загружался за 50мс максимум!

Вот... что делать...
  • Вопрос задан
  • 523 просмотра
Подписаться 2 Оценить 6 комментариев
Пригласить эксперта
Ответы на вопрос 3
@neol
Попробуйте кешировать в xcache или apc.
Ответ написан
@shagguboy
кэшируй конечный html
Ответ написан
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
shagguboy дело говорит, если object caching (массив) не удовлетворяет, ибо значительный расход времени идет на калькуляции на уровне PHP, используется fragment caching - генерируете уже готовый html и храните в memcached его.

Если сайт/приложение использует авторизацию и данные отличаются для гостей и пользователей, или вовлечена другая логика, которая требует множества вариантов - используйте комбинацию. 1й уровень - object cache (для авторизованных), поверх полируем fragment cache для гостей. Или же, если есть возможность и готовы к хардкору, разбиваете само меню / другой объект на части, те которые можно кешировать целиком, и те которые должны оставаться динамическими.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы