답변:
압축되는 데이터에 따라 다릅니다. 0으로 가득 찬 1Gb 파일을 사용한 빠른 테스트는 ~ 120Kb의 압축 크기를 제공하므로 10Kb 파일은 ~ 85MB로 확장 될 수 있습니다.
예를 들어, 데이터에 중복성이 부족하여 아카이브에 기본적으로 압축 된 형식 (gif, jpg, png, ...)의 이미지 파일이 포함 된 경우 gzip이 더 이상 압축되지 않을 수 있습니다. 프로그램 실행 파일과 같은 이진 파일의 경우 일반 텍스트, HTML 또는 기타 마크 업 3 : 1 또는 4 : 1 이상에 대해 최대 2 : 1 압축을 볼 수 있습니다. 경우에 따라 10 : 1이 표시 될 수 있지만 단일 기호로 채워진 파일로 표시되는 ~ 8700 : 1은 유사하게 인공적인 환경 외부에서는 볼 수없는 것입니다.
압축되지 않은 내용을 실제로 디스크에 쓰지 않고 gzip 파일의 압축을 풀면 얼마나 많은 데이터가 있는지 확인할 수 있습니다. gunzip -c file.gz | wc --bytes
이렇게하면 파일이 압축 해제되지만 결과는 저장되지 않고 전달 wc
되어 바이트 수를 계산하는 바이트 수를 계산합니다. 그런 다음 버립니다. 압축 된 컨텐츠가 많은 작은 파일을 포함하는 tar 파일 인 경우 전체 아카이브의 압축을 풀기 위해 현저히 더 많은 디스크 공간이 필요하다는 것을 알 수 있지만 대부분의 경우 파이핑 gunzip
출력 에서 리턴 된 수는 wc
필요한만큼 정확합니다.
phpinfo()
매우 잘 압축됩니다. 이 출력의 기술 정보에는 자연 언어의 평균 청크보다 더 많은 직접 반복이 포함되며 알파벳 분포가 덜 매끄 럽기 때문에 허프만 스테이지가 더 나은 결과를 얻는 데 도움이 될 수 있습니다.
일반적으로 압축률은 95 %를 넘지 않지만 (10kB zip으로 압축 된 데이터는 ~ 200kB로 압축 해제되지만) 기하 급수적으로 확장되는 특수하게 조작 된 파일이 있습니다. 를 42.zip
찾으면 몇 페타 바이트 (무의미한) 데이터로 압축 해제됩니다.
https://stackoverflow.com/a/16794960/293815 에서 인용 된 그대로
수축 형식의 최대 압축 비율은 1032 : 1입니다. 인코딩 할 수있는 가장 긴 실행이 258 바이트이기 때문입니다. 이러한 각각의 실행에 대해 적어도 2 개의 비트가 필요하며 (길이 코드의 경우 1 비트, 거리 코드의 경우 1 비트), 압축되지 않은 바이트 1 개는 압축 된 바이트 당 4 * 258 = 1032입니다.
gzip의 결과를 gzipping하여 더 많은 압축을 얻을 수 있습니다. 일반적으로 압축률은 향상되지 않지만 장시간 실행하면 압축이 향상됩니다.
그건 그렇고, 수축에 사용되는 LZ77 접근 방식은 실행 길이 인코딩보다 일반적입니다. 길이 대신 거리 / 거리 쌍이 사용됩니다. 이를 통해 어느 정도 거리에서 문자열을 복사하거나 1의 거리만큼 런 길이와 같이 바이트를 복제하거나 3의 거리로 3 배의 바이트를 복제 할 수 있습니다.
압축 알고리즘의 압축 비율은 압축되는 데이터의 기능입니다 (해당 데이터 길이 제외).
여기에서 분석이다 MaximumCompression ,
같은 샘플 중 하나에서 봐는,
파일 형식 : 여러 파일 형식 (총 46 개) 이 테스트에서 압축 할 파일 수 : 510 총 파일 크기 (바이트) : 316.355.757 평균 파일 크기 (바이트) : 620,305 가장 큰 파일 (바이트) : 18,403,071 최소 파일 (바이트) : 3,554
귀하의 질문에 대한 답변은 입력에 따라 다릅니다. 압축 방법에 대한 정보를 제공하기 위해이 6 분 분량의 비디오를 시청하십시오.
https://www.youtube.com/watch?v=ZdooBTdW5bM
압축 속도는 각 문자의 빈도에 따라 다르므로 일반적인 최대 속도가 없으며 입력에 따라 다릅니다. 영어 텍스트의 경우 약 65 %입니다.