나는 zlib inflate 예제를 따라 http://zlib.net/zlib_how.html에서 압축 파일을 압축 해제했다. CHUNK 크기를 256KB로 정의한 후에도 inflatable() 함수 호출의 출력 데이터는 8KB 밖에되지 않습니다. 나는 압축 파일이 8K의 CHUNK 크기를 사용하여 공기가 빠져 나갔다는 것을 알았으므로이 zlib의 CHUNK 크기가 디플레이션에 사용 된 크기와 같아야합니다.zlib inflate CHUNK 크기는 디플레이션에 사용 된 크기와 같아야합니까?
그렇다면 소스 파일을 변경하지 않고도 압축 해제 속도를 높이려면 어떻게해야합니까? 압축 해제에 8K의 CHUNK 크기를 사용하면 속도가 느립니다.
감사합니다. 내 문제를 디버그하려고합니다. 내 코드에서 CHUNK 크기는 256KB입니다. inflate() 호출 전에 avail_in은 54K 데이터이고 avail_out은 256K입니다. inflate() 호출 후 avail_in은 53K 데이터이고 avail_out은 (256 - 8) K입니다. 기본적으로 1K 데이터 만 inflate()에 의해 압축 해제되고 8K 데이터 만 생성됩니다. 따라서 avail_out! = 0부터 내부 루프를 종료합니다. 왜 모든 입력 데이터가 압축 해제되지 않는지 파악하려고 시도합니다. – JustDance
'inflate()'의 리턴 코드는 무엇입니까? –
반환 코드는 Z_STREAM_END입니다. – JustDance