我应该使用HttpResponse.End()来获得快速的webapp吗?

时间:2010-05-30 23:11:38

标签: asp.net exception premature-optimization

根据msdn,

HttpResponse.End()似乎抛出异常。现在我可以选择返回一个值来表示结束线程(它只有2个函数深)或者我可以调用end()。

我知道throwing exceptions is significantly slower(阅读C#/ .NET测试的评论)所以,如果我想要一个快速的网络应用程序,我应该考虑不要在没有调用它的时候调用它吗?

-edit-我确实在某些函数和类的构造函数中有一个函数调用,以确保用户登录。所以我在足够的地方调用HttpResponse.End()尽管希望在常规站点使用它不会经常发生。

2 个答案:

答案 0 :(得分:2)

您可以使用HttpResponse.Flush将数据推送到客户端,而不是完全终止请求,避免引发潜在的异常。

注意:只有在您过早地结束请求时,才会在调用Response.End时抛出该异常。

答案 1 :(得分:2)

只需使用Response.End即可。在编写代码以获得性能之前,请编写代码以实现可维护性。

此外,Web应用程序重要的性能指标是可伸缩性。也就是说,你不应该问“我能以多快的速度处理这个请求”,而是“我可以同时处理多少个请求?”。

例外不会影响您的可扩展性,并且在宏观方案中,单个请求上的额外几微秒就是空白:记住它在网络往返中至少 50毫秒:另外100微秒是噪音。