Nice programing

gzip으로 압축 된 스크립트의 크기를 어떻게 추정 할 수 있습니까?

nicepro 2020. 11. 3. 19:15
반응형

gzip으로 압축 된 스크립트의 크기를 어떻게 추정 할 수 있습니까?


내 JavaScript 파일을 gzip으로 압축 한 후 크기를 어떻게 추정 할 수 있습니까? 이를위한 온라인 도구가 있습니까? 아니면 예를 들어 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)

pretty-print 및 공백 전용 옵션을 사용하여 축소되지 않은 콘텐츠의 압축을 추정 할 수 있습니다.

견적이 필요한 경우 :

  • 동일한 축소 파이프 라인을 거친 100 개의 JS 파일로 시작합니다.
  • 각 파일에 대해 gzip -c "$f" | wc -c사이의 크기 비율을 계산합니다.wc -c "$f"
  • 이러한 비율의 평균은 유사한 JS 파일에 대해 예상해야하는 압축의 근사치입니다.

Cygwin 에는 gzipwcWindows 용 명령 줄 구현이 포함되어 있습니다 .


유닉스 gzip -c filename.min.js | wc -c를 사용하는 경우-gzip 파일의 바이트 수를 제공합니다.


7-zip 은 GZIP 형식으로 압축을 지원합니다.

나는 종종 파일 크기를 근사화하고 비교하기 위해 이것을 사용합니다.

아카이브를 생성 할 때, 찾아 Archive Format, 그리고 gzip제 3의 옵션입니다.

최신 정보:

의견에서 우리는 7-zip의 GZIP 압축과 실제 서버의 GZIP 압축간에 차이가있을 수 있다고 논의했습니다. 그래서 http://www.google.com/ 의 홈페이지만을 사용하여 비교했습니다 .
Google의 GZIP 페이로드는 36,678 바이트였습니다. 7-zip, "gzip Normal"설정은 35,559 (3 % 더 작음)입니다. "gzip Fastest"설정에서는 37,673 (3 % 더 큼)이었습니다.

간단히 말해서 7-zip의 결과는 약 97 % 정확했습니다 .


터미널에서 바로

gzip -9 -c path/to/file.js | wc -c | numfmt --to=iec-i --suffix=B --padding=10

comprison에 원본 크기가 필요한 경우

cat path/to/file.js | wc -c | numfmt --to=iec-i --suffix=B --padding=10

프로그래밍 방식으로 얻으려면 gzip-size 와 같은 유틸리티가 있습니다 . 노드 패키지이지만 일반적인 도구로 전역 적으로 설치할 수 있습니다.


http://refresh-sf.com/ 은 축소 및 gzip 비율 및 크기를 제공합니다.


전체 폴더에 대해 압축되지 않은, gzipped 및 brotli 된 파일 크기를 비교 하려면 : (필터링하려는 경우 *.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

Gow (Windows의 Gnu)gzip 를 통해 Windows에 설치할 수 있습니다 .


노드 코어를 사용하면 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);

참고 URL : https://stackoverflow.com/questions/9468511/how-can-i-estimate-the-size-of-my-gzipped-script

반응형