PHP:exec Yuicompressor.jar这么慢

时间:2012-03-21 08:20:45

标签: java php jar executable-jar yui-compressor

使用Yuicompressor 最小化脚本非常容易。不幸的是,在PHP中使用exec执行JAR时,此过程非常慢。

示例(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秒!在配备8GB Ram的四核服务器上。

是否有人知道更快的解决方案,以最大限度地减少一堆脚本?

1 个答案:

答案 0 :(得分:1)

执行时间主要取决于文件大小。

让我们试试Google Closure Compiler

将结果缓存到文件中或使用一些带有客户端缓存头的扩展(APC,Memcached)也是一个好主意。如果您使用filemtime()检查上次修改时间,您将知道是否需要缩小。

我经常使用单独的文件缓存,以防止大型内容缩小,然后整体创建MD5校验和,如果自上次请求后修改它,则保存新的校验和并打印出内容,否则只是使用:

header('Not Modified', true, 302);

通过这种方式,在开发状态下每个请求的计算也很少。我正在使用ExtJS 4作为我当前的项目,原始项目大小为1.2 MB,许多项目代码没有任何问题且响应时间不到1秒。