Проблема с производительностью LS 2.0 (ЧАСТИЧНО РЕШЕНО)

Всем привет. Перейду сразу к делу. Сайт на LS 2.0 очень медленный. По сравнению с LS 1.0.3 он медленнее почти в 2 раза. Пустой сайт или заполненный он все равно очень долго грузится. Пустой по 2-3 секунды. Полный по 4-6 секунд. Приведу примеры на сайтах сообществ LS.

beta.demo.livestreetcms.com — загрузка 4-6 секунд
goo.gl/IubZxU — скорость загрузки страниц с ПК 32 / 100
goo.gl/mWtuua — скорость загрузки страниц с мобильного 28 / 100

livestreet.ru — загрузка 3-4 секунды
goo.gl/hh5NKD — скорость загрузки страниц с ПК 78 / 100
goo.gl/T5rJGD — скорость загрузки страниц с мобильного 70 / 100

demo.livestreetcms.com — загрузка 2-3 секунды
goo.gl/n3AZ0u — скорость загрузки страниц с ПК 59 / 100
goo.gl/qFWE8H — скорость загрузки страниц с мобильного 56 / 100

autoopenid.demo.livestreetcms.com — загрузка 1 секунду
goo.gl/PoNHUo — скорость загрузки страниц с ПК 90 / 100
goo.gl/QuaOsw — скорость загрузки страниц с мобильного 74 / 100

Собственно вопрос к ort устранят ли эту проблему? И вообще, почему ее раньше не устранили? Об этом мной писалось в теме бета версии и на гитхабе еще в декабре. Как подобное можно было не заметить или проигнорировать? Скорость загрузки ужасная.

27 комментариев

avatar
avatar
а вообще гугл любит шутить походу:
avatar
Приведенные выше примеры практически не имеют никакого отношения к, собственно, самому ЛС. Результаты тестирования такие из за настроек веб-сервера и тестового режима самого бета-демо-сайта. Для того, чтобы избавиться от этих «проблем», надо всего лишь включить сжатие на веб-сервере и, опционально, в конфиге ЛС включить сжатие JS.

Это же сайт демо-сайт беты, он требуется для отлова ошибок, а не для тестирования производительности.
avatar
+, у меня сейчас в работе проект на 2.0. отдает по гугл спиду 76\100 для пк и 72\100 для телефонов
avatar
avatar
ничего не поменялось)
avatar
Для одного проекта дало под 20% прироста
avatar
ну я чу-чуть соврал, на php7 я тоже заметил разницу
avatar
ничего не поменялось в плане параметров google page speed я имел ввиду
avatar
Мне кажется проблема с CSS, т.к. он в большинстве случаев более 200кб.
С js все проще — в LS 2.0 есть async и др.
Так вот насчет CSS давно подумывал о так называемом crytical CSS (+ habralink)
avatar
Месяц назад скорость загрузки бета версии была 8 секунд, сейчас 4-6 секунд, а должна быть не более секунды. Так что проблему не решили.
avatar
рабочий проект на лс2, чистая cms последней версии + админка + несколько самописных плагинов
yadi.sk/i/rszEA_IM3C6yan (скрин)
avatar
Помимо выше указанных правок, еще нужно фиксить Component.class.php. Я там многое закешировал мемкешем и стало намного быстрее… Теперь все упирается в Config и Smarty.
avatar
Желательно подробнее
avatar
При каждой инициализации, модуль перебирает все компоненты, ищет все возможные зависимости. Если результат закешировать, будет неплохой эффект.
avatar
Добавил кеширование компонентов
avatar
Поставил двиг 10 минут назад, летает, загрузка 0.21 секунды.
avatar
Наверное голый сайт?)
avatar
Пост обновлен. Добавлена ссылка на демо LS 1.0.3 и анализ скорости. Разница в показателях и скорости существенна.
avatar
Можно авторизоваться на этом сайте и добавить пост с 10 картинками по 3мб каждую, потом еще раз провести тест (использовать ссылку на пост)
avatar
Есть более простое решение. После удаления постов на демо LS 2.0 скорость сократилась до секунды, а показатели скорости не изменились.
avatar
Поправка. Показатели скорости изменились. С ПК с 59 / 100 до 79 / 100. С мобильных с 56 / 100 до 69 / 100.
avatar
На данный момент показатели скорости пустой демо LS 2.0 таковы. С ПК 92 / 100. С мобильных 79 / 100.
avatar
Показатели скорости на LS 2.0 все равно ниже, чем на LS 1.0.3
avatar
И скорость загрузки, где-то на 25% медленнее.
avatar
Скорее всего эти 25% и есть затраты в компонентах…
avatar
Можно по разному оптимизировать, это зависит от того какой у вас проект.

1. Как минимум нужно кэшировать данные о пользователе для каждого топика или комментария, если на их получение идет запрос.
2. Кэшировать данные о пользователе и топике для каждого из комментариев. Это относится к странице «Активность».
3. Возможно стоит кэшировать Get-запрос для анонимуса на несколько минут.
4. Кто-то использует клиентский рендеринг, вместо серверного. Но я считаю бредом использовать полный рендеринг на клиенте, разве что частично.

Эти идеи узконаправленны и не совсем хороши для архитектуры CMS. Но, наверное, можно написать пару плагинов.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.