Здравствуйте!
Делаем выгрузку товаров в xml.
Для поиска максимальной скидки используем CCatalogDiscount::GetDiscount();
В каталоге 14000 товаров. При активации скидки на все товары, скрипт пожирает 1,5Гб памяти , без скидок 300Мб хватает.
Выяснили что именно при использовании CCatalogDiscount::GetDiscount(); и при включении скидки на все товары, память утекает.
unset($arDiscounts,$prop_fields);gc_collect_cycles(); не помогает.
Саму функцию тоже проверили (memory_get_usage()), есть макс 10кб.
При чем скрипт вылетая с ошибкой "Allowed memory size..." указывает постоянно на разные файлы ("/bitrix/modules/iblock/classes/general/iblockelement.php on line 3007", "bitrix/modules/catalog/general/product.php ...") .
Может кто сталкивался или знает в какую сторону копать?
Делаем выгрузку товаров в xml.
Для поиска максимальной скидки используем CCatalogDiscount::GetDiscount();
В каталоге 14000 товаров. При активации скидки на все товары, скрипт пожирает 1,5Гб памяти , без скидок 300Мб хватает.
Код |
---|
$properties = CIBlockElement::GetList(Array("id"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>ID),false,false,array()); while ($prop_fields = $properties->Fetch()) { CModule::IncludeModule("catalog") && CModule::IncludeModule("iblock"); $arDiscounts = CCatalogDiscount::GetDiscount( $prop_fields['ID'], 3, array(2), array(), 'N', 's1', false ); } |
unset($arDiscounts,$prop_fields);gc_collect_cycles(); не помогает.
Саму функцию тоже проверили (memory_get_usage()), есть макс 10кб.
При чем скрипт вылетая с ошибкой "Allowed memory size..." указывает постоянно на разные файлы ("/bitrix/modules/iblock/classes/general/iblockelement.php on line 3007", "bitrix/modules/catalog/general/product.php ...") .
Может кто сталкивался или знает в какую сторону копать?