Як я можу оцінити розмір мого файлу 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) .