Когда инфоблок содержит более 80 тысяч элементов, каждый из которых создаёт отдельную папку кэша, поиск нужного файла существенно замедляется.
Решение — генерировать иерархическую структуру подпапок на основе хэша ID:
function __getGenerationCachePath($id)
{
$hash = md5($id);
$path = substr($hash,-4,2).'/'.substr($hash,-2);
return $path;
}Пример использования с CPHPCache:
$ob_Cache = new CPHPCache;
$i_CacheTime = 3600;
$s_CacheID = $ID;
$s_CachePatch = "/object_80k/" . __getGenerationCachePath($ID) . "/" . $ID . "/";Функция создаёт структуру подпапок вида /object_80k/as/df/ID, разбивая 80 тысяч папок на иерархические подпапки. Это уменьшает время поиска кэша и общую нагрузку на сервер.
