Як я можу оцінити розмір мого файлу JavaScript після його архівування в архів? Чи є для цього Інтернет-інструменти? Або це схоже на використання winzip, наприклад?
Відповіді:
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)
Ви можете використовувати параметри досить друкованого та пробілу, щоб оцінити стиснення неменфікованого вмісту.
Якщо вам потрібна оцінка:
gzip -c "$f" | wc -cіwc -c "$f"Cygwin містить реалізації командного рядка gzipта wcдля Windows.
Якщо ви користуєтеся Unix - gzip -c filename.min.js | wc -cдасть вам байт базування файлу gzipped
gunzip -c myfile | wc -cабоzcat myfile | wc -c
cat filename.js | wc -c.
Прямо від терміналу,
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 . Це пакет вузлів, але ви можете встановити його глобально як загальний інструмент.
Я часто використовую це для наближення та порівняння розмірів файлів.
Створюючи архів, знайдіть Archive Formatі gzipце 3-й варіант.
У коментарях ми обговорили, що може існувати різниця між стисненням GZIP 7-zip та фактичним стисненням GZIP сервера. Отже, я порівняв, використовуючи лише домашню сторінку http://www.google.com/ .
Корисне навантаження GZIP від Google становило 36 678 байт. 7-zip, з налаштуванням "gzip Normal", становив 35 559 (на 3% менше). З налаштуванням "Найшвидший gzip" він становив 37 673 (на 3% більше).
Отже, коротко: 7-zip мав результати, які були приблизно на 97% точними .
http://refresh-sf.com/ надасть вам мініфікацію та співвідношення та розміри gzip.
З ядром вузла ви можете використовувати довжину буфера 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);
Якщо ви хочете порівняти розміри файлів, що не стиснуті, зірвані з архіву, та 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
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
Ви можете встановити gzipсебе в Windows за допомогою Gow (Gnu On Windows) .