Здравствуйте! Подскажите, пожалуйста:
Код |
---|
$res = \CIBlockElement::getList([],
[
'IBLOCK_ID' => 8
],
false,
false,
[
'ID', 'IBLOCK_ID', 'PROPERTY_PRICE'
]
);
$x =0;
while ($arFields = $res->fetch())
{
if ($x % 100 == 0 && $x > 0)
{
\JBZoo\Utils\Cli::out(($x) . ' from ' . $res->selectedRowsCount() . ' memory ' . memory_get_usage() /1024/1024);
}
$x++;
$arPrice = CCatalogProduct::getOptimalPrice($arFields['ID']);
}
|
Если в подобном цикле использовать CCatalogProduct::getOptimalPrice, то значительно съедается память (
).
Пробовал добавлять на каждую 100-ю итераци код:
Код |
---|
\Bitrix\Catalog\Discount\DiscountManager::clearProductsCache();
\Bitrix\Catalog\Discount\DiscountManager::clearProductPropertiesCache();
\Bitrix\Catalog\Discount\DiscountManager::clearProductPricesCache();
|
и
Код |
---|
CCatalogDiscount::ClearDiscountCache(array(
'PRODUCT' => true,
'SECTIONS' => true,
'PROPERTIES' => true
));
|
результат не изменился. Подскажите, пожалуйста, как можно решить данную проблему. Спасибо! (Версия битрикс 1С-Битрикс: Управление сайтом 17.0.15)