用于发送大型HTTPWebRequest的应用程序因outofmemory异常而崩溃

时间:2012-04-20 14:24:19

标签: c# httpwebrequest

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

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

它的补救措施是什么?

1 个答案:

答案 0 :(得分:0)

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