使用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的四核服务器上。
是否有人知道更快的解决方案,以最大限度地减少一堆脚本?
答案 0 :(得分:1)
执行时间主要取决于文件大小。
让我们试试Google Closure Compiler。
将结果缓存到文件中或使用一些带有客户端缓存头的扩展(APC,Memcached)也是一个好主意。如果您使用filemtime()检查上次修改时间,您将知道是否需要缩小。
我经常使用单独的文件缓存,以防止大型内容缩小,然后整体创建MD5校验和,如果自上次请求后修改它,则保存新的校验和并打印出内容,否则只是使用:
header('Not Modified', true, 302);
通过这种方式,在开发状态下每个请求的计算也很少。我正在使用ExtJS 4作为我当前的项目,原始项目大小为1.2 MB,许多项目代码没有任何问题且响应时间不到1秒。