반디집에서 gzip 압축 속도의 개선이 가능할까요?

148 views
Skip to first unread message

Iljin Kim

unread,
Nov 4, 2022, 11:55:38 PM11/4/22
to Bandizip for Windows forum
안녕하세요. 좋은 프로그램 항상 감사드립니다.

대용량 파일 여러 개를 압축하다가 tgz 압축 성능이 생각보다 훨씬 느려 질문/요청드려봅니다.

잘 아시다시피 tgz과 zip의 실제적인 압축 알고리즘은 똑같은 DEFLATE입니다.
그런데, tgz로 압축을 해보니 zip에 비해 압도적으로 느린 것을 확인했습니다.

1.8GB짜리 데이터 파일 3개를 파일 하나로(*.zip / *.tgz) 압축해보니 압축률은 별 차이 없지만, 속도가 심하게 차이가 났습니다.
- 실행환경: Ryzen 9 5900X / 64GB / Windows 11 Pro
- zip(반디집) / 기본 옵션: 00:00:12
- tgz(반디집) / 기본 옵션: 00:01:56
- 리눅스(WSL) / 00:01:53
(리눅스는 윈도우에서 WSL로 우분투를 돌렸으며, 윈도우 드라이브를 마운트한 곳에서 직접 실행했습니다)

실제 적용되는 알고리즘은 동일한데, 속도 차이가 나는 걸 보면 아마도 실제로 적용하신 라이브러리가 다른 게 아닐까 하고 (근거 없이) 추측되는데, 혹시 zip 압축에 적용하시는 라이브러리를 gzip에도 적용하는 등의 방식으로 gzip 압축 속도를 증가시킬 수는 없을까 해서 문의/요청 드려봅니다.

KH Park

unread,
Nov 8, 2022, 1:55:37 AM11/8/22
to Bandizip for Windows forum

안녕하세요. 반디소프트입니다.


현재 반디집의 압축 모듈은 ZLIB 를 사용하여 구현이 되어 있으며,

ZIP 및 GZ 압축시에는 멀티 스레드 압축을 지원하고 있지만,

TGZ 압축시에는 싱글 스레드만을 사용하고 있습니다.


압축 모듈의 구현은 

1) 압축 루프 안에서 입력데이터를 읽어서 압축 후 출력

2) 입력 데이터를 읽은 모듈에서 압축 모듈로 데이터를 전송하고 압축 모듈은 압축 후 출력 ( 유닉스의 파이프 처럼 ) 


하는 방식으로 구현이 가능한데,

초기 ZIP 모듈은 1) 번 방식으로 구현이 되어 있었고, TGZ 압축은 포맷은 TAR 출력 스트림을 

DEFLATE 로 압축 하는 방식으로 구현되어야 하기 때문에 2)번으로 구현이 되어 있습니다.


즉, 서로 구현 방식이 달라서 발생한 문제이며 현재로서는 상당히 많은 작업 시간을 투자하지 않는 이상

TGZ 에 멀티스레드를 지원하는것은 곤란한점 이해해 주셨으면 합니다.


감사합니다.




--
You received this message because you are subscribed to the Google Groups "Bandizip for Windows forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bandizip-win...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bandizip-win/19ffdb38-a7d7-4bf2-92a7-9e9f31df3481n%40googlegroups.com.

Iljin Kim

unread,
Nov 9, 2022, 1:22:33 AM11/9/22
to Bandizip for Windows forum
친절한 답변 감사드립니다.

고맙습니다.


2022년 11월 8일 화요일 오후 3시 55분 37초 UTC+9에 dev....@bandisoft.com님이 작성:
Reply all
Reply to author
Forward
0 new messages