web-dev-qa-db-ja.com

gzip圧縮されたスクリプトのサイズを見積もるにはどうすればよいですか?

JavaScriptファイルをgzip圧縮した後、どのように見積もることができますか?このためのオンラインツールはありますか?または、たとえばwinzipを使用するのと似ていますか?

68
Christophe

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用のgzipおよびwcのコマンドライン実装が含まれています。

46
Mike Samuel

UNIXを使用している場合-gzip -c filename.min.js | wc -cは、gzip圧縮されたファイルのバイト数を示します

98
gnarf

7-Zip は、GZIP形式への圧縮をサポートします。

私はこれをファイルサイズの概算と比較によく使用します。

アーカイブを作成するときは、Archive Format、およびgzipは3番目のオプションです。

更新:

コメントでは、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%正確でした

9
Scott Rippey

ターミナルから直接、

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 のようなユーティリティがあります。これはノードパッケージですが、一般的なツールとしてグローバルにインストールできます。

8
srcspider

http://refresh-sf.com/ は、縮小とgzipの比率とサイズを提供します。

7
JosephSlote

非圧縮、gzip、およびbrotli'edのファイルサイズを比較する場合フォルダー全体の場合:(フィルタリングする場合は*.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
1
jakub.g

ノードコアでは、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);
0
charlespwd

Gow(Gnu On Windows) を使用して、Windowsにgzip自体をインストールできます。

0
tomByrer