Какое ядро Битрикс быстрее? Новое или старое?
Решил углубиться в дебри bitrix orm и переписать привычный запрос со старого ядра на orm. Ну и замерить время выполнения конечно.
Запрос в инфоблок с фильтром по свойству и получением значения этого свойства. Запрос делался в инфоблок с 6000 элементами и 150 свойствами. Под условие фильтра подходило около 300 элементов.
Старое ядро. Время выполнения от 0.025 до 0.041 сек.
CModule::IncludeModule('iblock'); $dbItems = CIBlockElement::GetList( array(), array('IBLOCK_ID' => 1, 'ACTIVE' => 'Y', 'PROPERTY_NEW_VALUE' => 'Да'), false, false, array('ID', 'IBLOCK_ID', 'NAME', 'ACTIVE', 'SORT') ); while ($obItem = $dbItems->GetNextElement()) { $arItem = $obItem->GetFields(); $arItem['NEW'] = $obItem->GetProperties(array(), array('CODE' => 'NEW'))['NEW']; }
Новое ядро. Время выполнения от 0.051 до 0.085 сек.
\Bitrix\Main\Loader::includeModule('iblock'); $obItems = \Bitrix\Iblock\Elements\ElementCatalogTable::query() ->setFilter(['ACTIVE' => 'Y','NEW.ITEM.VALUE' => 'Да']) ->setSelect(['ID', 'IBLOCK_ID', 'NAME', 'ACTIVE', 'SORT', 'NEW.ITEM']) ->fetchCollection(); foreach ($obItems as $obItem) { $arItem = $obItem->collectValues(); $arItem['NEW'] = $arItem['NEW']->getItem()->collectValues(); }
Пока новое ядро проигрывает в 2 раза. И так же стоит учитывать, что в orm не будет некоторых полей, DETAIL_PAGE_URL например.
Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.