GetRequestStream is very slow

本文关键字:slow very is GetRequestStream | 更新日期: 2023-09-27 18:27:17

当在多线程环境中运行一个生成多个网络请求的C#程序时,我发现Request.GetRequestStream相当慢,有时需要几秒钟,通常是后续GetResponse的两倍。即使Proxy已设置为null,这也是一个"标准"修复。

这是什么原因造成的?

GetRequestStream is very slow

事实证明,默认情况下,.NET对同时连接的默认限制为2。当然,这将严重限制任何执行重要多线程的应用程序,并且延迟将出现在GetRequestStream调用上。

"修复"是将默认限制更改为更合理的值:

ServicePointManager.DefaultConnectionLimit = newConnectionLimit;

我在VMWare上运行Windows的摇摇晃晃的Mac似乎可以处理20的值,但应该注意这个数字,因为一个大的数字会让更多的资源被占用,而不会增加性能。