Предыдущая моя статья восхваляла Битрикс. Теперь настало время и пожурить. Так сказать используем метод кнута и пряника. Достался мне от старых разрабов интернет-магазин. Все на нем сделал, все работает, но вот почему-то каталог очень долго грузится, особенно корень каталога, в котором выводятся товары каталога. Сам компонент catalog вынесен в свое пространство имен. Ну и я конечно сразу начал материть старых разрабов и полез разбираться. Оказалось, что сам компонент catalog.section идет стандартный. Провел отладку и выявил, что компонент дает 10 тыс. запросов за 2 секундаы а сам компонент загружается 16 секунд. Не мало так для одного компонента. Но мне же интересно в чем дело и выявил, что такую загрузку в компоненте дает следующий код:
В итоге пришлось обратиться в службу поддержки Битрикса. Сначала они меня отправили куда подальше, думая, что компонент нестандартный. Но я указал на стандартный компонент catalog.section и они признали, что эту проблему они знают и разработчик занимается данный вопросом. Обещали в ближайших обновлениях решить этот вопрос. Если честно, мне от этого легче не стала, так как загрузка страницы в 18 секунд - это не хорошо. Пришлось лезть в ядро Битрикса. Нашел проблему вот где: функция CIBlockPriceTools::GetItemPrices
На сколько я знаю, Евгений Жуков в Битрикс прямо сейчас работает над решением этой проблемы с самым высоким приоритетом важности, а раз так -- скоро она будет решена.
Мне кажется проблемы со SKU не будут решены еще долго, потому, что изначально сделали заплатку, а потом стали навешивать на нее функционал. Но карточные домики постоянно рушаться
а в ядре в каком файле? Можете подсказать? т.к. в данный момент я вывожу на главную 4 компонента, 3 компонента по 10 элементов, 1 компонент 16 элементов. Делаю фильтрацию по !PREVIEW_PICTURE => false и фильтрую по свойству. Но, страница генерируется 16 сек. Что вообще ужс.
Кастомизируйте компонент и выносите выборку цен в отдельный запрос с фильтром по ID найденных товаров, причем только для простых (не имеющих предложений).
Переделал как писал выше. Также, первый компонент вызываю AJAX-ом только если его wrapper в видимой области / при скроле. Скорость значительно увеличился. Был 17 сек на главную страницу. Стало - 0.8 сек если впервые. Стало - 0.1 сек если из кэша / перезагрузка страницы без параметра CLEAR_CACHE=Y.
Иван Гринкевич написал: Сталкивался с проблемой топикстартера, решение было примерно аналогичным. Ждем решения от разработчиков.
С чем именно Вы сталкивались и на какой версии iblock? На каком компоненте? Проблема большого числа запросов в catalog.section (обозначенная топик-стартером) была решена более двух лет назад.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».