Как я могу оценить размер моего файла JavaScript после его gzipped? Существуют ли онлайн-инструменты для этого? Или это похоже на использование winzip, например?
Как я могу оценить размер моего gzipped script?
Ответ 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);