我按照http://zlib.net/zlib_how.html中的zlib inflate示例来解压缩压缩文件。即使我将CHUNK大小定义为256KB,我看到每个inflate()函数调用的输出数据只有8KB。我知道使用8K的CHUNK大小来压缩压缩文件,这是否意味着zlib inflate的CHUNK大小必须与通货紧缩中使用的大小相同?
如果是,在不更改源文件的情况下,无论如何都要加速解压缩?使用8K的CHUNK大小进行解压缩是很慢的。
答案 0 :(得分:0)
不,块大小不必相同。可以使用任何块大小通过膨胀来解码有效的deflate流。
即使我将CHUNK大小定义为256KB,我也看到了输出数据 每个inflate()函数调用只有8KB。
根据评论中的讨论,您没有单个的deflate流,而是一系列小的deflate流的串联。请进行充气,每次完成流时都需要重新启动充气过程,Z_STREAM_END
返回inflate()
表示该流。使用inflateReset()
代替inflateEnd()
后跟inflateInit()
,因为这可以节省时间并避免不必要的释放和内存分配。
除此之外,没有办法加速减压。