gpt4 book ai didi

.net - HttpWebResponse 响应流的最佳缓冲区大小

转载 作者:行者123 更新时间:2023-12-02 13:35:43 27 4
gpt4 key购买 nike

与来自 HttpWebResponse.GetResponseStream() 的流一起使用的最佳缓冲区大小是多少?

在线示例的大小从 256b 到 5Kb 不等。是什么赋予了?我猜缓冲区大小可能是视情况而定。如果是的话,什么情况下使用什么类型的缓冲区大小?

谢谢。

最佳答案

其实,这并不重要。

当然,如果您使用非常小的缓冲区,您可能需要在各层中进行一些额外的调用才能获取字节(尽管流可能至少做了一些缓冲 - 我不知道它的默认值是什么是)。当然,如果您使用非常大的缓冲区,您将浪费一些内存并引入一些碎片。由于您显然在这里进行 IO,因此通过调整缓冲区获得的任何时间都将由 IO 时间主导。

作为一般规则,我选择 2048 (2k) 到 8192 (8k) 之间的 2 的幂。如果您使用的缓冲区等于或大于 85,000 字节(则为 "large object" and subject to different GC rules ),请确保您知道自己在做什么。

事实上,比缓冲区大小更重要的是你保存它的时间。对于大型对象堆之外的对象,GC 非常擅长处理生命周期非常短的对象(第 0 代收集速度很快)或生命周期非常长的对象(第 2 代)。在被释放之前存活时间足够长以到达 Gen 1 或 Gen 2 的对象相对而言成本更高,而且通常比缓冲区有多大更值得您花时间担心。

最后一点:如果您认为由于使用的缓冲区大小而导致性能问题,请测试。这不太可能,但谁知道呢,也许您有操作系统版本、网络硬件和驱动程序版本的奇怪融合,这对某些大小的缓冲区存在一些奇怪的问题。

关于.net - HttpWebResponse 响应流的最佳缓冲区大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/780316/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com