Как я могу оценить размер моего gzipped script?

Как я могу оценить размер моего файла JavaScript после его gzipped? Существуют ли онлайн-инструменты для этого? Или это похоже на использование winzip, например?

Ответ 1

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 файлов, прошедших один и тот же протокол minification.
  • Для каждого файла вычислите отношение в размерах между gzip -c "$f" | wc -c и wc -c "$f"
  • Среднее значение этих коэффициентов является приблизительным значением сжатия, которое следует ожидать для аналогичного JS файла.

Cygwin содержит версии командной строки gzip и wc для Windows.

Ответ 2

Если вы используете unix - gzip -c filename.min.js | wc -c, вы получите количество байтов gzipped файла

Ответ 3

7-zip поддерживает сжатие до формата GZIP.

Я часто использую это, чтобы приблизить и сравнить размеры файла.

При создании архива ищите Archive Format, а gzip - третий вариант.

Обновить:

В комментариях мы обсуждали, что может быть разница между сжатием GZIP 7-zip и фактическим сжатием GZIP сервера. Итак, я сравнил, используя только домашнюю страницу http://www.google.com/.
Полезная нагрузка Google GZIP составила 36 678 байт. 7-zip с настройкой "gzip Normal" был 35 559 (на 3% меньше). При настройке "gzip Fastest" он составил 37 673 (на 3% больше).

Итак, короткая история: у 7-zip были результаты с точностью около 97%.

Ответ 4

Непосредственно из терминала

gzip -9 -c path/to/file.js | wc -c | numfmt --to=iec-i --suffix=B --padding=10

Если вам нужен оригинальный размер для contentison,

cat path/to/file.js | wc -c | numfmt --to=iec-i --suffix=B --padding=10

Чтобы получить его программно, есть утилиты, такие как gzip-size. Это пакет node, но вы можете установить его глобально в качестве общего инструмента.

Ответ 5

http://refresh-sf.com/ даст вам коэффициенты и размеры minification и gzip.

Ответ 6

Если вы хотите сравнить несжатые, сжатые и сжатые размеры файлов для всей папки: (при условии, что вы хотите отфильтровать *.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

Ответ 7

Вы можете установить gzip самостоятельно на Windows через Gow (Gnu On Windows).

Ответ 8

С ядром узла вы можете использовать длину буфера 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);