如何估计gzip压缩脚本的大小?

时间:2012-02-27 16:29:34

标签: javascript gzip minify

如何在gzip压缩后估算JavaScript文件的大小?有在线工具吗?或者它与使用winzip类似?

8 个答案:

答案 0 :(得分:93)

如果您使用的是unix - gzip -c filename.min.js | wc -c将为您提供gzip压缩文件的字节数

答案 1 :(得分:46)

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)

您可以使用漂亮打印和仅限空白的选项来估算非缩小内容的压缩。

如果您需要估算:

  • 从100个JS文件开始,这些文件已通过相同的缩小管道。
  • 对于每个文件,计算gzip -c "$f" | wc -cwc -c "$f"
  • 之间的大小比率
  • 这些比率的平均值是您对类似JS文件应该期望的压缩的近似值。

Cygwin包含Windows的gzipwc命令行实现。

答案 2 :(得分:8)

7-zip支持压缩为GZIP格式。

我经常使用它来估算和比较文件大小。

创建档案时,请查找Archive Formatgzip是第3选项。

更新

在评论中,我们讨论了7-zip的GZIP压缩与实际服务器的GZIP压缩之间可能存在差异。所以,我只使用http://www.google.com/的主页进行比较 谷歌的GZIP有效载荷为36,678字节。 7-zip,“gzip Normal”设置为35,559(小3%)。使用“gzip Fastest”设置,它是37,673(大3%)。

所以,长话短说: 7-zip的结果准确率高达97%

答案 3 :(得分:7)

http://refresh-sf.com/会给你缩小和gzip比率&尺寸。

答案 4 :(得分:7)

直接从终端

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之类的实用程序。它是一个节点包,但您可以将其作为常规工具全局安装。

答案 5 :(得分:1)

如果要比较整个文件夹的未压缩文件,压缩文件和未压缩文件的大小(假设您要过滤*.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

答案 6 :(得分:0)

您可以通过Gow (Gnu On Windows)在Windows上安装gzip

答案 7 :(得分:0)

对于节点核心,您可以使用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);