다중 파일 압축 벤치마크 테스트 요약

다중 파일 압축 벤치마크 테스트 요약

여기에 이미지 설명을 입력하세요

따라서 7zip에는 다양한 압축 방법이 있습니다. 어떤 작업에 가장 적합한 방법은 무엇입니까?

예: LZMA와 LZMA2의 한 가지 차이점은 모든 CPU 코어를 선택할 수 있는 반면, LZMA에서는 2개의 코어가 최대 코어라는 것입니다.

답변1

LZMA 2 아카이브를 처리할 수 없는 시스템에서 아카이브를 추출하려는 경우가 아니면 LZMA 2를 사용하십시오.

일반적으로 대부분의 최신 압축 알고리즘은 거의 동일한 압축을 제공하며, 한 번에 사용할 수 있는 코어 수와 관련하여 사용할 수 있는 코어 수를 결정하는 것은 사용자에게 달려 있습니다. 일반적으로 말하면(대규모 아카이브를 생성하지 않는 한) 하나 이상의 아카이브가 필요할 이유가 없습니다. 또한 여러 코어가 압축을 수행하면 병목 현상이 하드 드라이브가 될 수 있습니다.

답변2

7-Zip(적어도 2019-09-27 기준)에는 선택할 수 있는 다양한 설정과 일반적으로 각 설정의 용도에 대한 매우 훌륭한 설명이 포함된 도움말 문서가 내장되어 있습니다.

벤치마크 결과나 그 어떤 것도 없지만, "우연히 끔찍한" 설정이 아니라 "충분히 좋은" 설정을 선택했다는 자신감을 심어주기에 충분한 정보였습니다.

도움말 문서는 7-Zip 파일 관리자와 아카이브에 추가 대화 상자를 통해 사용할 수 있습니다.

유용하다고 생각되는 페이지(아카이브에 추가 대화 상자에서 직접 열림)에 대한 "콘텐츠" 경로는 다음과 같습니다.

File Manager / Plugins / 7-Zip / Add to Archive Dialog Box

여기에 이미지 설명을 입력하세요

다음은 압축 방법 섹션의 대략적인 복사/붙여넣기입니다.

방법 설명

  • LZMA
    • 7z 형식의 기본 압축 방법입니다. 7-Zip의 이전 버전도 LZMA 방법으로 생성된 아카이브의 압축을 풀 수 있습니다. 높은 압축률과 매우 빠른 압축 해제를 제공합니다.
  • LZMA2
    • 7z 형식의 기본 압축 방법입니다. LZMA2는 LZMA 기반 압축 방식입니다. LZMA보다 더 나은 멀티스레딩 지원을 제공합니다. 그러나 어떤 경우에는 압축률이 더 나빠질 수 있습니다. LZMA2의 최상의 압축 비율을 위해서는 1개 또는 2개의 CPU 스레드를 사용하십시오. 2개 이상의 스레드가 있는 LZMA2를 사용하는 경우 7-zip은 데이터를 청크로 분할하고 이러한 청크를 독립적으로 압축합니다(각 청크당 2개의 스레드).
  • PPMd
    • Dmitry Shkarin의 PPMdH 알고리즘에 작은 변화가 있습니다. 일반적으로 텍스트 파일에 대해 높은 압축률과 빠른 속도를 제공합니다.
  • BZip2
    • BWT 알고리즘을 기반으로 한 표준 압축 방법입니다. 일반적으로 텍스트 파일에 대해 빠른 속도와 매우 좋은 압축 비율을 제공합니다.
  • 꺾다
    • ZIP 및 GZip 형식의 표준 압축 방법입니다. 압축률은 그리 높지 않습니다. 그러나 매우 빠른 압축 및 압축 해제 기능을 제공합니다. Deflate 방법은 32KB 사전만 지원합니다.
  • 수축64
    • 더 큰 사전(64KB)을 갖춘 Deflate 알고리즘의 수정된 버전입니다.

답변3

Lzma2는 4개 이상의 코어를 사용할 때 더 빠르고 더 나은 압축을 제공합니다.이 문서모든 것을 설명합니다.

답변4

링크는 웨이백 머신에서 찾을 수 있습니다:

https://web.archive.org/web/20221015140740/http://www.maximumcompression.com/data/summary_mf2.php

(테이블을 다시 포맷하는 것이 귀찮았습니다. HTML 테이블을 자체 형식으로 변환할 수 없는 이유가 궁금할 수 있습니다)

다중 파일 압축 벤치마크 테스트 요약

파일 형식 : 다양한 파일 형식(총 46개)

이 테스트에서 압축할 파일 수: 510

총 파일 크기(바이트): 316.355.757

평균 파일 크기(바이트): 620,305

최대 파일(바이트) : 18,403,071

최소 파일(바이트) : 3,554

이 테스트는 무손실 데이터 압축기의 '실제' 성능을 모델링하도록 설계되었습니다. 테스트 세트에는 '사람들이 아카이버를 가장 많이 사용하는 용도'를 염두에 두고 선택한 다양한 파일 형식이 혼합되어 있습니다. 테스트 세트에는 압축 소프트웨어를 사용하는 일반 사용자가 이러한 파일을 압축에 사용하는 빈도에 따라 가중치가 부여된(세트의 파일 유형 및 비율 모두에서) 데이터가 포함되어야 합니다. 예를 들어 세트에는 .ocx 파일보다 txt 파일이 더 많습니다(예, 이는 임의적입니다). 이 세트에는 100개의 파일이 포함되어 있으며 총 크기는 300MB가 넘습니다. 대규모 컬렉션의 아이디어는 '소음'을 필터링하는 것입니다. 압축기는 1~2개의 파일 형식에서 성능이 좋지 않을 수 있지만 매우 큰 컬렉션에서는 그다지 손상되지 않습니다.

CCM 및 BZIP2와 같은 일부 프로그램은 한 번에 하나의 파일만 압축할 수 있습니다. 이러한 프로그램의 경우 모든 파일을 포함하는 단일 TAR 파일이 생성됩니다. 이 TAR 파일의 파일은 접미사, 이름 순으로 알파벳순으로 정렬됩니다. 이러한 압축기의 결과는 타르 처리된 열에 'Y'로 표시됩니다.

테스트 세트는 다음 파일 형식으로 구성됩니다.

파일 형식 설명 전체의 % 파일 수
목차, MBX 유도라 사서함 12.31 16
EXE, DLL, OCX, DRV 실행 파일 10.99 35
TXT, RTF, DIC, LNG 여러 언어로 된 텍스트 파일 10.21 41
BMP, TIFF 비트맵/TIF 이미지 7.88 15
통나무 로그 파일 6.34 6
HTM, PHP HTML 파일 6.13 19
문서 MS 워드 파일 6.08 30
C, CPP, PAS, DCU 소스 코드 6.00 235
MDB, CSV 데이터베이스 4.26 7
HLP Windows 도움말 파일 4.23 7
CBF, CBG 사전 압축된 체스 데이터베이스 3.55 2
WAV 웨이브 사운드파일 3.45 9
XLS XLS 스프레드시트 2.41 16
PDF 어도비 아크로뱃 문서 1.59 6
TTF 트루타입 글꼴 1.15 15
데프 바이러스 정의 파일 1.10
JPG, GIF 이미지 파일 0.53 9
CHM 사전 압축된 도움말 파일 0.49 2
INI, INF INI 파일 0.42 10
기타 DAT,JAR,M3D,SYS,PPT,MAP,WP,RLL,RIB.. 10.88 27

이것이 '실제' 테스트라는 사실을 고려하여 최적의 압축을 위해 사용할 수 있는 최상의 스위치 조합(명령줄 또는 GUI)을 살펴보지 않고 '일반 사용자'처럼 제한된 세트만 테스트하겠습니다. . 7-zip의 경우 이는 예를 들어 GUI를 사용하고 Ultra 압축 방법(좋은 명령줄 스위치로 쉽게 이길 수 있음)을 선택하고 WinRar는 최대 사전 크기 및 솔리드 아카이브 등으로 테스트된다는 의미입니다. 프로그램은 다음을 수행할 수 있습니다. 최대 800MB 메모리를 사용하고 12시간 이내에 압축 단계를 완료해야 합니다. MFC에 등재되려면 압축된 크기가 원본 크기의 50% 이하여야 합니다.

단일 파일 테스트의 경우 테이블에 압축 시간을 추가해 달라는 요청을 많이 받았습니다. 단일 파일 요약 파일에 명시된 이유로 이 작업을 수행하지는 않았지만, 이번 다중 파일 테스트를 위해 압축 시간을 측정할 계획입니다!. 또한 이 테스트 세트를 '비공개'로 만들기로 결정했기 때문에 개발자가 이 특정 테스트에 맞게 프로그램을 조정하기가 더 어렵습니다. 이것이 '실생활' 성능 테스트를 받는 가장 공정한 방법이라고 생각합니다.

채점 시스템: 가장 낮은 압축 크기를 생성하는 프로그램이 최고의 프로그램으로 간주됩니다. 가장 효율적인(읽기:전체 사용) 프로그램은 아카이브를 생성하는 데 걸린 압축 + 압축 해제 시간(초)에 아카이브 크기를 가장 낮은 측정 아카이브 크기로 나눈 값을 곱하여 계산됩니다. 점수가 낮을수록 좋습니다. 기본 아이디어는 X가 Y보다 두 배 빠르게 압축할 수 있고 결과적으로 X의 아카이브 크기가 Y의 크기보다 10% 더 큰 경우 압축기 X가 압축기 Y와 동일한 효율성을 갖는다는 것입니다. (이 공식을 올바르게 이해한 Uwe Herklotz에게 특별히 감사드립니다.)

Score_X = POWER(2; ((size_X / size_TOP) - 1) / 0,1) * time_X

~와 함께

  score_X     efficiency score for a certain compressor X

  time_X      time elapsed by compressor X (comp + decomp time)

  size_X      archive size achieved with compressor X

  size_TOP    archive size by top archiver (smallest benchmark result)

압축 크기 및 압축 시간을 기준으로 압축기 효율을 계산하는 공식

"0,1"은 10%를 나타내고 2의 거듭제곱은 각 10% 더 나쁜 결과(상위와 비교하여)에 대해 시간이 두 배가 되므로 모든 아카이버(상위 압축기 제외)는 시간에 따른 페널티를 받게 됩니다. 최고 압축기의 점수는 항상 시간 값과 같습니다.

관련 정보