Мы продолжаем наполнять каталог. Сейчас у нас всего 2000 свойств в инфоблоке. В одном из разделов 4000 товаров. Эти товары используют всего 10 свойств для умного фильтра. Но страница перестала открываться с ошибкой, что мало памяти.
Сначала было @ini_set( "memory_limit", "512M" );
Я увеличил @ini_set( "memory_limit", "1024M" );
На какое-то время хватило. Но скоро опять перестало открываться. Кто съел гигабайт? Этот код:
Пришлось исправить. В $arNewElement попадают только те свойства, которые есть в умном фильтре
Я ещё свою реализацию CIBlockElement::GetPropertyValues делал, чтобы не выполнялись лишние запросы для получения множественных свойств, если они не участвуют в фильтре. Количество запросов в сотни раз можно уменьшить.
Я ещё свою реализацию CIBlockElement::GetPropertyValues делал, чтобы не выполнялись лишние запросы для получения множественных свойств, если они не участвуют в фильтре. Количество запросов в сотни раз можно уменьшить.
Я тоже думал об этом. Чтобы значения not null были и список ID свойств в фильтре передавался. Но пока так оставил. Запрос сейчас не очень эффективен, но он в кеше.
Очередной пост о багах умного фильтра, который очередной раз свидетельствует о том, что при выпуске в stable - модули, компоненты, интерфейсы толком не тестируются. И даже после нахождения и исправления багов участниками коммьюнити приходится довольно долго ждать применения этих исправлений в битриксе.
Еще раз убеждаюсь, что такой агрессивный маркетинг в конечном итоге не на пользу продукту. Иначе как еще объяснить все это?
Меня тоже возмущает сложившаяся политика 1С-Битрикс. Многие пользователи и я в том числе давно указывают на вопиющие косяки в производительности умного фильтра. И ничего за этим не следует кроме обещания в 15-ой версии заняться им в плотную.. Вот Артемий Зайцев находит и уже прямо сам пишет как исправить уже вторую ошибку. А до этого Голубев Владислав выпускал патч чтобы фильтр заработал в корне каталога. итд Почему они это могут сделать, а в компании 1С-Битрикс где работает уже более 100 человек этого сделать не могут? Я так понимаю что дело в приоритетах. Подскажите, как донести до руководства 1С-Битрикс, что этот вопрос очень сильно супер ультра мега важный и критичный для нас? Прошу подсказать с помощью какого механизма это можно осуществить сейчас на практике? И не так чтобы залечили как душевнобольного мол успокойся не тревожься, все будет хорошо когда-нибудь и далее пошли заниматься совсем другими делами. А чтобы прямо взяли напряглись и сделали?
Вот мучает вопрос, неужели выборка всех элементов (а если 100к их) и последующая их обработка в цикле менее требовательна к ресурсам нежели в лоб sql GROUP BY?
Вообще както страшно использовать Стандартный фильтр на разрабатываемых проектах, постоянно в блоге жалобы что он неслабо так прожерлив... Пока делаю все на ИБ 2.0 и использую свой фильтр который как раз таки в лоб GROUP BY + кеш. (50 свойств не потянет, но 5-10 множественных шустро отрабатывают на большом количестве элементов, при наличии конечно соответствующих индексов)...
Шашалевич Станислав, по моему все зависит от типа данных этих свойств. Если будет 30 int (списки) - то почему не потянет? Я конечно не эксперт но вроди в mysql есть ограничение только на размер данных в строке, а не на количество колонок и т.п. в ней. И запросы на группировку отрабатывают очень быстро при наличии индексов.
весь день промучились с утечкой памяти, именно на странице с использование "умного фильтра". Сколько бы памяти не давали на выполнение php - все мало. Увидев данный пост, убрал использование фильтра и ВСЕ заработало! Автору Артемий Зайцев плюс к карме.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».