PHP: exec Yuicompressor.jar так медленно
С помощью Yuicompressor довольно легко свернуть скрипты. К сожалению, этот процесс очень медленный при выполнении JAR с exec
в php.
Пример (PHP):
// start with basic command
$cmd = 'java -Xmx32m -jar /bin/yuicompressor-2.4.8pre.jar -o \'/var/www/myscript.min.js\' \'/var/www/myscript.min.temp.js\'';
// execute the command
exec($cmd . ' 2>&1', $ok);
Время выполнения ~20 файлов занимает до 30 секунд! на четырехъядерном сервере с 8 ГБ оперативной памяти.
Кто-нибудь знает более быстрое решение, чтобы минимизировать кучу скриптов?
1 ответ
Время выполнения в основном зависит от размера файла (ов).
Давайте попробуем с компилятором Google Closure.
Также рекомендуется кэшировать результат в файл или использовать некоторые расширения (APC, Memcached) с комбинацией заголовков кэширования на стороне клиента. Если вы проверяете время последней модификации с помощью filemtime(), вы будете знать, нужно ли минимизировать или нет.
Я часто использую отдельное кэширование по файлам, чтобы предотвратить минимизацию большого содержимого, затем создаю контрольную сумму MD5 для целого, и если она изменяется с момента последнего запроса, то сохраняю новую контрольную сумму и распечатываю содержимое, иначе просто используя:
header('Not Modified', true, 302);
Таким образом, очень мало вычислений по каждому запросу также в состоянии разработки. Я использую ExtJS 4 для своего текущего проекта, размер которого составляет 1,2 МБ в исходном виде и много кодов проекта без каких-либо проблем и с временем отклика менее 1 с.