MaxHub
Служба Заботы MaxSite CMS

Как уменьшить время загрузки страницы? Не количество запросов к БД

Вопросы-ответы / 25 мая 2016

Ситуация такая, что обычный PHP-скрипт вот так грузит сервер (картинка). Причем опытным путем выяснилось, что время загрузки страницы не сильно уменьшается при включении $db['default']['cache_on'] = TRUE;

Раз скрипт работает, не выдает ошибок, значит нет зацикливаний и тд, я правильно понимаю?

В какую сторону копать? Такое время загрузки ощутимо заметно.

Комментариев: 5
  1. Во-первых, при любом кешировании первоначальная загрузка страницы будет долгой. Тут скорее речь о том, чтобы страдал только "первопроходец", а у остальных посетителей всё будет летать.

    Во-вторых, как раз таки количество запросов БД и является основной причиной такого большого времени формирования страницы.

    Отсюда рекомендация: освоить стандартные функции кеширования (mso_get_cache и mso_add_cache - в недрах дефолтного шаблона много примеров их использования в паре) включить плагин sm_profiler (в нём есть информация по времени исполнения каждого запроса) и постепенно, запрос за запросом, настроить кеширование всех "тяжёлых" запросов в рамках вашего шаблона.

  2. Илья, Спасибо за рекомендации!

    при любом кешировании первоначальная загрузка страницы будет долгой

    Да, я ориентировалась не на первую загрузку страницы при включении кэширования, а на последующие. При последующих загрузках в информации указывается, что используется 0 запросов к БД, то есть вообще нет запросов. При этом время загрузки страницы не опускается ниже 1,5с. Я правильно понимаю, что mso_get_cache и mso_add_cache мне не помогут в этом случае?

    А циклы foreach могут влиять на время исполнения скрипта? Например, если на странице 10 циклов и каждый по 1000 обходов, это много?

    P.S. при отправке этого вопроса на МаксХабе в информации было указано больше 80 запросов SQL и ооочень маленькое время загрузки.

  3. А циклы foreach могут влиять на время исполнения скрипта? Например, если на странице 10 циклов и каждый по 1000 обходов, это много?

    Конечно могут и скорее всего влияют.

    при отправке этого вопроса на МаксХабе в информации было указано больше 80 запросов SQL и ооочень маленькое время загрузки.

    Помимо SQL запросов на время также может влиять доступные сайту вычислительные мощности сервера. Так, на обычных (shared) хостингах ваш сайт может делить сервер с сотнями сайтов и ему фактически будет доставаться очень мало процессорного времени. МаксХаб работает на минимальном VDS, где во-первых, есть гарантированный объём ресурсов, а во-вторых, этот ресурс делится между тремя малопосещаемыми сайтами, т.е. ресурсов много. В общем, после циклов думаю стоит поднять вопрос о хостинге.

  4. А если в целом, 2с. считается большим временем загрузки? Какое время считается оптимальным (диапазон)?

  5. А если в целом, 2с. считается большим временем загрузки?

    Да. Оптимально не более 1.5 с. А в идеале менее одной.

    Со "скоростью" Максайта я сам лично столкнулся. Когда на сайте более 5-6 тыс записей и более 50 -60-ти категорий, Максайт пытается повесить сервер, на котором работает.smile

    Решается все путем оптимизации SQL и, ГЛАВНОЕ - избавление от бесконечного числа FOREACH, которых в системе бесчисленное множество.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Вход / регистрация или войти без комментирования
  Имя и сайт используются только при регистрации

Авторизация MaxSiteAuth. Войти через loginza

(обязательно)