Comment puis-je estimer la taille de mon fichier JavaScript une fois qu'il est compressé? Existe-t-il des outils en ligne pour cela? Ou est-ce similaire à l'utilisation de winzip par exemple?
http://closure-compiler.appspot.com/home vous permet de coller du code, ce qui vous donnera les taux de compression d'un fichier particulier avant et après 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)
Vous pouvez utiliser les options d'imprimé et d'espace uniquement pour estimer la compression de contenu non minifié.
Si vous avez besoin d'un devis:
gzip -c "$f" | wc -c
et wc -c "$f"
Cygwin contient les implémentations en ligne de commande de gzip
et wc
pour Windows.
Si vous êtes sur unix - gzip -c filename.min.js | wc -c
vous donnera le nombre d'octets du fichier compressé.
J'utilise souvent cela pour approximer et comparer la taille des fichiers.
Lors de la création d'une archive, recherchez Archive Format
et gzip
est la 3ème option.
Dans les commentaires, nous avons expliqué qu'il pourrait y avoir une différence entre la compression GZIP de 7-Zip et la compression GZIP d'un serveur réel. J'ai donc comparé en utilisant uniquement la page d'accueil de http://www.google.com/ .
La charge utile GZIP de Google était de 36 678 octets. 7-Zip, avec le réglage "gzip Normal", était 35 559 (3% plus petit). Avec le paramètre "gzip Fastest", il était de 37 673 (3% plus grand).
Ainsi, la longue histoire est courte: 7-Zip a donné des résultats d’environ 97%.
http://refresh-sf.com/ vous donnera les rapports et tailles de minification et gzip.
Directement depuis le terminal,
gzip -9 -c path/to/file.js | wc -c | numfmt --to=iec-i --suffix=B --padding=10
Si vous avez besoin de la taille originale pour la comprendre,
cat path/to/file.js | wc -c | numfmt --to=iec-i --suffix=B --padding=10
Pour le programmer, il existe des utilitaires tels que gzip-size . C'est un paquet de nœuds mais vous pouvez l'installer globalement comme un outil général.
Si vous souhaitez comparer les tailles de fichier non compressées, gzippées et décompressées pour l'ensemble du dossier: (en supposant que vous souhaitiez filtrer *.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
Exemple de sortie (séparés par des tabulations pour pouvoir les copier dans une feuille de calcul):
foo.js 39035 10150 8982
bar.js 217000 68978 56337
Avec node core, vous pouvez utiliser la longueur du tampon zlib.gzip pour déterminer la taille de 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);
Vous pouvez installer gzip
sous Windows via Gow (Gnu On Windows) .