PHP: exec Yuicompressor.jar so slow


PHP: exec Yuicompressor.jar so slow

使用Yuicompressor很容易最小化scriptS。不幸的是,在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内存的四核服务器上。

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

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

让我们试试谷歌闭包编译器

将结果缓存在文件中或使用一些扩展名(APC、Memcached)与客户端缓存头的组合也是一个好主意。如果你用filemtime()检查最后一次修改时间,你就会知道是否需要minimy。

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

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

通过这种方式,每个请求也在dev状态下进行了少量计算。我现在的项目使用ExtJS 4,它的原始大小为1.2 MB,有很多项目代码,没有任何问题,响应时间不到1秒。