将JavaScript文件压缩后,如何估算其大小?有在线工具吗?还是类似于使用winzip?
Answers:
http://closure-compiler.appspot.com/home允许您粘贴代码,并且可以为您提供GZIP前后特定文件的压缩率。
Original Size: 90 bytes (100 bytes gzipped)
Compiled Size: 55 bytes (68 bytes gzipped)
Saved 38.89% off the original size (32.00% off the gzipped size)
您可以使用“仅打印精美”和“仅空白”选项来估计未缩小内容的压缩率。
如果您需要估计:
gzip -c "$f" | wc -c
和之间的大小比例wc -c "$f"
Cygwin的包含的命令行实现gzip
和wc
用于Windows。
如果您使用的是UNIX,gzip -c filename.min.js | wc -c
则将为您提供gzip压缩文件的字节数
gunzip -c myfile | wc -c
或zcat myfile | wc -c
cat filename.js | wc -c
。
直接从终端,
gzip -9 -c path/to/file.js | wc -c | numfmt --to=iec-i --suffix=B --padding=10
如果您需要原始的尺寸,
cat path/to/file.js | wc -c | numfmt --to=iec-i --suffix=B --padding=10
要以编程方式获取它,可以使用gzip-size之类的实用程序。它是一个节点软件包,但您可以将其作为通用工具全局安装。
我经常使用它来估计和比较文件大小。
创建档案时,请查找Archive Format
,这gzip
是第三个选项。
在评论中,我们讨论了7-zip的GZIP压缩与实际服务器的GZIP压缩之间可能存在差异。因此,我仅使用http://www.google.com/的主页进行了比较。
Google的GZIP有效负载为36,678字节。带有“ gzip普通”设置的7-zip为35,559(缩小3%)。使用“ gzip最快”设置时,它为37,673(大了3%)。
因此,长话短说:7-zip的结果准确率约97%。
http://refresh-sf.com/将为您提供缩小和gzip比例和尺寸。
对于节点核心,可以使用zlib.gzip缓冲区的长度来确定gzip的大小:
const fs = require('fs');
const util = require('util');
const zlib = require('zlib');
const readFile = util.promisify(fs.readFile);
const gzip = util.promisify(zlib.gzip);
const getGzipSize = filePath => readFile(filePath)
.then(gzip)
.then(x => x.length);
如果您要比较整个文件夹的未压缩,压缩和残破的文件大小:(假设您要过滤*.js
):
for file in *.js; do printf "$file\t$(cat $file | wc -c)\t$(gzip -kc7 $file | wc -c)\t$(brotli --in $file --out temp.br --force --quality 11 && cat temp.br | wc -c)\n"; done | tee filesizes.log
示例输出(制表符分隔,以便您可以复制到电子表格):
foo.js 39035 10150 8982
bar.js 217000 68978 56337
filesizes.log
。在输出中添加了逗号,以提高可读性。被撞gzip压缩级别9相匹配的11已经刷爆出brotli压缩级别for file in *.js; do printf "$file\t$(cat $file | wc -c | xargs printf "%'d\n")\t$(gzip -9c $file | wc -c | xargs printf "%'d\n")\t$(brotli -cZ $file | wc -c | xargs printf "%'d\n")\n"; done | tee