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

/ Просмотров: 2899

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

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

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

Комментариев: 5 RSS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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