Кеш на компоненте занимает мегабайты, в случае если у секций есть длинные описания, либо много свойств.
Нужно это поправить.
1/ Массив
$arResult['SECTION'] и подмассив
$arResult["SECTION"]["PATH"]:
зачем сохранять в кеше все поля секций, даже
SEARCHABLE_CONTENT?
для сео они все не нужны.
2/ Зачем сохранять все свойства элемента в кеш и даже пустые?
Массив
$arResult['PROPERTIES'] - зачем все сохраняются? для сео и прочего лишь некоторые ведь нужны...
Надо лишние убирать.
После удаления лишнего из кеша, объем этого самого кеша уменьшается с 3мб до 90кб.
Считаю, что нужно внедрить это в компонент
bitrix:catalog.element.Пример решения через
result_modifier.php компонента
bitrix:catalog.element:
// clear unused cache fields
foreach ($arResult['PROPERTIES'] as $k => $prop) {
if (trim($prop['VALUE']) == '') {
unset($arResult['PROPERTIES'][$k]);
}
}
$arDeleteSectionKeys = array('SEARCHABLE_CONTENT', '~SEARCHABLE_CONTENT');
foreach ($arResult['SECTION'] as $k => $s) {
if ($k == 'PATH') {
foreach ($s as $ks => $ss) {
foreach ($ss as $kss => $ss2) {
if (in_array($kss, $arDeleteSectionKeys)) {
unset($arResult['SECTION'][$k][$ks][$kss]);
}
}
}
} else if (in_array($k, $arDeleteSectionKeys)) {
unset($arResult['SECTION'][$k]);
}
} |
п.1 Оставили только часть полей
п.2. Ключ PROPERTIES больше не сохраняется вообще - в нем больше нет необходимости