限制并行 HTTP 请求:探索 Windows 注册表配置
为了优化使用 ThreadPool 执行大量异步 HTTP 请求的应用程序,开发人员最初遇到了性能限制。最初的故障排除试图解决服务器端的潜在限制,但这一途径被消除了。
研究表明 Windows 对同一 Web 服务器的并发请求数量存在潜在限制。建议增强 [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings] 中的注册表值“MaxConnectionsPerServer”和“MaxConnectionsPer1_0Server”作为改变此行为的方法。然而,预期的改进未能实现。有人怀疑引用的注册表值可能不正确,或者修改在当前 Windows 环境中不再有效。
有趣的是,更改 ThreadPool 中的 MaxThreads 设置并没有影响应用程序的性能,因此将其排除在外潜在的瓶颈。相应的资源监视器观察进一步证实了有限的 TCP 连接。
更正方法
经过仔细检查,很明显该问题源于 ServicePoint 类引入的限制,它管理 HTTP 操作的连接。默认情况下,每个 ServicePoint 对象规定最多两个并发连接。为了缓解这一限制,开发人员修改了“ServicePointManager.DefaultConnectionLimit”属性以适应大量的并发请求。这一调整最终解决了问题,允许应用程序同时运行多个 HTTP 请求。
以上是如何增加 Windows 应用程序中的并发 HTTP 请求数?的详细内容。更多信息请关注PHP中文网其他相关文章!