gpt4 book ai didi

c# - 当客户端同时发送大量请求时,HttpWebRequest 需要很长时间才能发送

转载 作者:行者123 更新时间:2023-11-30 22:44:04 30 4
gpt4 key购买 nike

我正在尝试使用创建许多 HttpWebRequests (1000+) 的 C# 负载测试客户端对 Comet-ish 服务器进行负载测试。我发现几分钟后,服务器随机地需要很长时间才能收到一些请求。客户端认为发送请求成功,但实际上需要 40s 才能到达服务器,此时为时已晚。 (由于这是 Comet 类型的服务器,服务器最终会丢弃客户端 session ,这很糟糕)。我尝试从异步调用切换到同步调用,但没有任何区别。

问题一定出在客户端。我用 Wireshark 进行了一些跟踪,结果发现请求实际上需要 40 秒左右的时间才能从客户端软件到达网络管道!服务器在其管道上收到请求后立即为请求提供服务。

也许 C# 搞砸了,因为该请求看起来与我之前发出的请求完全相同,并且出于某种奇怪的原因将其缓存?我在响应中包含“Cache-Control:no-cache”以避免完全缓存。

最佳答案

我在第一次构建我的网络爬虫时遇到了类似的问题,它每分钟发出超过 2,000 个请求。结果问题是我并不总是及时处理 HttpWebResponse 对象。当您以该速率发出请求时,垃圾收集/终结机制将无法跟上。

无论您执行同步请求还是异步请求并不重要。只需确保始终调用 response.Close()

关于c# - 当客户端同时发送大量请求时,HttpWebRequest 需要很长时间才能发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3612992/

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