gpt4 book ai didi

c# - 如何根据当前服务器找到最适合读取或写入 Stream 的缓冲区大小

转载 作者:可可西里 更新时间:2023-11-01 02:33:33 24 4
gpt4 key购买 nike

我正在编写一个服务器,它将准备好并写入大量文件/数据库。

我在很多地方都使用了 Stream 读写函数,其中我使用 8192 作为缓冲区大小。

我也在读取来自 TCP 套接字的大量输入。

我不知道将要部署该服务的 VM 的配置是什么。

是否有任何内置函数可以用来确定最适合我的服务器的缓冲区大小?

最佳答案

我自己也经常想知道这一点。但最终我认为没有适用的一般规则。它始终取决于您的特定需求。

根据经验,如果您的缓冲区更大,您需要更少的文件系统或数据库往返,一般来说,这对大多数情况来说是最好的。

但是,您的系统在不进行其他应用程序的情况下可以一次将多少数据读入内存,这在很大程度上取决于您的个人环境。某些移动设备的细节可能与您的 Over-the-top 服务器硬件等不同。

其他需要考虑的因素是网络带宽和其他共享资源,以及对您的行为的绝对性能影响。

例如,在一个包含数千个图像文件的项目中,经过多次尝试后我们发现 - 对我们来说 - idela 缓冲区大小约为 1 MB。对于尺寸小于该尺寸的图像,我们使用的缓冲区大小等于文件大小。对于您的场景,这当然不适合。

Microsoft 的性能专家 Rico Mariani 列出了性能编程的 10 个最重要的方面:测量、测量、测量、测量……(你明白了。:-))

关于c# - 如何根据当前服务器找到最适合读取或写入 Stream 的缓冲区大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12245399/

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