Основная его проблема в том, что он сохраняет все миниатюры в одну папку. Это не так страшно, пока у вас их не станет несколько тысяч.
Есть неприятная особенность многих файловых систем (и linux и тем более windows)
Если мы обратимся к любому файлу, который лежит в папке, где бок-о-бок лежит несколько тысяч других, то это будет медленнее, чем обычно.
На некоторых типах FS сама директория будет открываться очень медленно.
ВНИМАНИЕ! Я имею ввиду вообще любое взаимодействие с файлами, будь то программные чтения/записи так и отдача картинку в браузер и тем более, если просто зайти в папку.
-----------
Решается это довольно просто.
В файле administrator\components\com_zoo\helpers\zoo.php находим resizeImage() и меняем строки
на следующее
if (1) { // 0 - чтобы использовать старый вариант $path = md5($file . $width . $height); $subfolder = substr($path, 0, 2); $cacheFolder = '/cache/com_zoo/images/'; // относительный путь для миниатюр $thumbfile = JPath::clean(JPATH_ROOT . "{$cacheFolder}/{$subfolder}/{$path}." . $file_info['extension']); } else { $thumbfile = $this->app->path->path('cache:') . '/images/' . $file_info['filename'] . '_' . md5($file . $width . $height) . '.' . $file_info['extension']; } $cache_time = 86400 * 365; // 365 суток, вместо 24-х часов. Нет смысла генерировать каждый раз одно и тожеВ итоге
-- Теперь картинки будут создаваться во вложенных директориях и мы избегаем некоторых тормозов FS
-- $cacheFolder можно подстроить под себя и вынести например в '/cache_images/'. Т.о. вы при чистке кеша Joomla миниатюры не пострадают и не придется их генерировать снова.
-- Миниатюра будет создана заново только по прошествии года. Считаю, что нет смысла генерировать их раз в сутки и получить один и тот же результат. Это пустая трата ресурсов...
Рекомендую в дополнение
-- Проверьте опцию realpath_cache_size в php.ini Он должна быть в районе 4мб, минимум 512кб. Отвечает за любые манипуляциями с файлами через PHP
-- Если есть возможность, то отключите open_basedir Опция заставляет проверять любой файл на сайте, что он находится в определенной папке. А по факту сильно тормозит сайт.
-- Стоит рассмотреть перенос папки кеша в RAM диск
Стоит понимать
-- У вас изменятся пути на сайте, поэтому ПС может выкинуть картинки из поиска по картинкам.
-- Если картинки часто меняются, то $cache_time лучше не трогать.
-- Не стоит ждать бешенного всплеска производительности. Это не то самое узкое место любого сайта.