zlib和缓冲区大小

zlib和缓冲区大小,zlib,buffering,Zlib,Buffering,我目前正在我的一个项目中尝试使用zlib进行压缩。我看了一下基本情况,对以下陈述感到困惑: CHUNK只是用于向数据馈送和提取数据的缓冲区大小 来自zlib例程。缓冲区大小越大,效率越高, 尤其是充气()。如果内存可用,则缓冲区大小为on 应使用128K或256K字节的顺序 #定义块16384 在我的例子中,我总是在输出端有一个小的缓冲区(大约80字节),并通过zlib不断地从输入端提供非常小的数据(几个字节)。这意味着我不会有一个更大的缓冲区在任何一边,但我计划使用更小的 但是,我不确定如何解

我目前正在我的一个项目中尝试使用zlib进行压缩。我看了一下基本情况,对以下陈述感到困惑:

CHUNK只是用于向数据馈送和提取数据的缓冲区大小 来自zlib例程。缓冲区大小越大,效率越高, 尤其是充气()。如果内存可用,则缓冲区大小为on 应使用128K或256K字节的顺序

#定义块16384

在我的例子中,我总是在输出端有一个小的缓冲区(大约80字节),并通过zlib不断地从输入端提供非常小的数据(几个字节)。这意味着我不会有一个更大的缓冲区在任何一边,但我计划使用更小的

但是,我不确定如何解释“较大的缓冲区大小将更有效”。这是指编码效率还是时间/空间效率

我必须纠正这种情况的一个想法是,添加更多的缓冲层,这些缓冲层已经从输入中累积,并反复刷新到输出中。但是,这意味着我必须积累数据,并向数据中添加更多级别的复制,这也会影响性能

现在,如果效率只是指时间/空间效率,我可以衡量这两种方法的影响,然后决定使用哪种方法。但是,如果实际编码可能受到较小缓冲区大小的影响,那么这可能很难检测到


有没有人有使用zlib和非常小的缓冲区的经验?

这意味着时间效率。如果给充气大的输入和输出缓冲区,它将在内部使用更快的充气代码。如果缓冲区小到您喜欢的程度(甚至大小为1),它就可以正常工作,但速度会慢一些


对你来说,积累输入并将其放大可能是值得的。您还需要提供更大的输出缓冲区。

这意味着时间效率。如果给充气大的输入和输出缓冲区,它将在内部使用更快的充气代码。如果缓冲区小到您喜欢的程度(甚至大小为1),它就可以正常工作,但速度会慢一些

对你来说,积累输入并将其放大可能是值得的。您还需要提供更大的输出缓冲区