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 с.

Другие вопросы по тегам