web-dev-qa-db-fra.com

Comment puis-je estimer la taille de mon script compressé?

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?

65
Christophe

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:

  • Commencez avec 100 fichiers JS ayant suivi le même pipeline de minification.
  • Pour chaque fichier, calculez le rapport en tailles entre gzip -c "$f" | wc -c et wc -c "$f"
  • La moyenne de ces ratios est une approximation de la compression à laquelle vous pouvez vous attendre pour un fichier JS similaire.

Cygwin contient les implémentations en ligne de commande de gzip et wc pour Windows.

45
Mike Samuel

Si vous êtes sur unix - gzip -c filename.min.js | wc -c vous donnera le nombre d'octets du fichier compressé.

88
gnarf

7-Zip prend en charge la compression au format GZIP.

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.

Mettre à jour:

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%.

8
Scott Rippey

http://refresh-sf.com/ vous donnera les rapports et tailles de minification et gzip.

7
JosephSlote

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.

7
srcspider

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
0
jakub.g

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);
0
charlespwd

Vous pouvez installer gzip sous Windows via Gow (Gnu On Windows) .

0
tomByrer