zlib을 사용하여 작은 메모리 블록 (< = 16 KiB)을 수축시키고 싶습니다. 출력은 메모리 블록에도 저장됩니다. 아니오 디스크 또는 데이터베이스 액세스는 여기에 있습니다.zlib : 치수 방법 avail_out
설명서에 따르면 전체 입력이 수축 될 때까지 반복해서 deflate()
으로 전화해야합니다. 그 사이에 출력이 나오는 메모리 블록의 크기를 늘려야합니다.
그러나 불필요하게 복잡하고 비효율적 인 것처럼 보입니다. 입력 크기를 알기 때문에 출력에 필요한 최대 크기를 미리 결정한 다음 deflate()
을 한 번만 호출하여 모든 작업을 수행 할 수 있습니까?
그렇다면 최대 출력 크기는 무엇입니까? 나는 다음과 같이 가정합니다 : 입력 크기 + 일부 바이트 오버 헤드