Скорость компрессора YUI

Я использовал YUI Compressor (вызываемый через PHP-скрипт) для минимизации объединенного файла. Сначала я объединил файл, затем уменьшил его, но теперь я минимизирую файлы, а затем объединяю их. Это потенциально экономит время, если не все (~ 40+ скриптов и CSS-файлы) были изменены.

Я заметил, что общий процесс минимизации 40 файлов занимает значительно больше времени (около 120+ секунд), тогда как объединенный файл занимает значительно меньше времени на минимизацию.

Вы можете отказаться от философии комбинирования сначала и после, но кто-нибудь знает причину этой проблемы? Возможно, это связано со временем инициализации приложения?

Я использую этот код:

    $yui_jar = $this->fitango_root.'/js/yuicompressor-2.4.7.jar';
    $command = "java -jar $yui_jar $filename -o $path_file";
    echo "MINIFYING: $filename\n";
    exec ($command,$result);

person user1122069    schedule 16.05.2014    source источник
comment
Я очень думаю, что это время запуска компрессора. Он написан на Java, что не очень хорошо во время запуска. По этой ссылке: yuilibrary.com/projects/yuicompressor/ticket/1872317 выглядит как он поддерживает подстановочные знаки?   -  person barnyr    schedule 23.05.2014


Ответы (1)


Это будет время запуска Java JVM. Хотя это не описано на странице компрессора YUI, оно поддерживает преобразование подстановочных знаков в отдельные файлы:

java -jar yuicompressor-2.4.8.jar -o ".js$:-min.js" *.js

Я только что протестировал это локально и могу подтвердить, что он работает. Если вы запустите компрессор без аргументов, вы получите более актуальный список опций, откуда я взял вышеизложенное.

person barnyr    schedule 22.05.2014
comment
В моем сценарии сборки минификации используется следующий формат: foreach (... java -jar yuicompressor-2.4.8.jar -o $ 2 $ 1 ...). Это не будет работать с регулярным выражением, если я не скопирую все файлы во временную папку и обратно. Можно ли использовать синтаксис с запятой или что-то подобное? - person user1122069; 24.05.2014
comment
@ user1122069 вы, вероятно, можете использовать пути в подстановочном знаке, большинство оболочек это позволяет ... release/*/*-debug.js -o "-debug.js$:-min.js" - person gcb; 22.09.2014