Skip to main content
 首页 » 编程设计

c#之用于发送大型 HTTPWebRequest 的应用因内存不足异常而崩溃

2024年01月02日53birdshome

要求是创建一个应用程序来对 Web 服务进行压力测试。 想法是将大小为 4 KB 的 1000K HTTPWebRequests 轰击到 Web 服务 为了实现这一点,我们创建了一个应用程序,其结构类似于一些线程正在添加要在队列中发送的数据,而线程池正在异步发送这些请求。 Task responseTask = Task.Factory.FromAsync(testRequest.BeginGetResponse, testRequest.EndGetResponse, null);" 但现在正在发生的事情是经过一段时间后请求数/秒显着减少(可能是因为服务的响应时间增加了......但是如果我们异步发送请求,响应时间会很重要吗?)。除此之外,一段时间后该工具崩溃并显示消息“应用程序已停止工作"异常显示为内存不足异常。

我观察到的一件事是在应用程序崩溃之前,Web 服务的响应时间显着增加。这是崩溃的间接原因吗?

有什么补救措施?

请您参考如下方法:

也许您在没有限制的情况下排队任务,因此待处理请求的数量无限增加。即使在使用异步行为时,您也需要节流。