我如何在 JavaScript 文件被压缩后估算其大小?是否有在线工具可用?或者这类似于使用 WinZip 等软件吗?
我如何在 JavaScript 文件被压缩后估算其大小?是否有在线工具可用?或者这类似于使用 WinZip 等软件吗?
如果你使用的是Unix系统 - gzip -c filename.min.js | wc -c
命令可以给出压缩后文件的字节数。
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)
您可以使用pretty-print(漂亮打印)和white-space only(仅空格)选项来估计非压缩内容的压缩情况。gzip -c "$f" | wc -c
和 wc -c "$f"
之间大小比率的平均值。
- 这些比率的平均值是您应该期望在类似JS文件中获得的压缩近似值。
Cygwin 包含了Windows命令行下的gzip
和 wc
实现。直接从终端执行
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
我经常用这个来近似比较文件大小。
当创建存档时,查找Archive Format
,gzip
是第三个选项。
在评论中,我们讨论了7-zip的GZIP压缩和实际服务器的GZIP压缩之间可能存在差异。因此,我只使用http://www.google.com/的主页进行了比较。
Google的GZIP负载为36,678字节。 "gzip Normal"设置的7-zip为35,559(小3%)。 "gzip Fastest"设置为37,673(大3%)。
简而言之:7-zip的结果准确率约为97%。
和
7zip mm=Deflate mx=9`。在不同程度上,7zip始终更小。如果变化范围更小,我会推荐它(我自己是7-zip的粉丝)。 - tomByrer使用Node核心,您可以使用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);
const gzipSizeInKb = Math.round((zlib.gzipSync(content).length / 1024) * 100) / 100;
- Dr. Lemon Tea如果您想比较整个文件夹中未压缩、gzip压缩和brotli压缩后的文件大小(假设您想筛选*.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,以匹配已经达到最大值的brotli压缩级别11。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
- mrienstra
gunzip -c myfile | wc -c
或zcat myfile | wc -c
,可以知道未压缩的原始字节数大小。 - Adrien Schulercat filename.js | wc -c
。 - Jess Telford