C# WebApi.net 2中的抛出异常和IHttpActionResult之间是否存在实时响应时间差异?

C# WebApi.net 2中的抛出异常和IHttpActionResult之间是否存在实时响应时间差异?,c#,asp.net-web-api,C#,Asp.net Web Api,我最近经常使用Web Api,我有一些方法使用经典的异常抛出方法来发送(例如)错误请求: throw new HttpResponseException(HttpStatusCode.BadRequest); 在将其中一些更改为IHttpActionResult后,我首先注意到,其中许多使用以下方法运行得更快: return (IHttpActionResult) BadRequest("Not found"); 起初,我认为这只是一个无法测量的差异,但我决定重复几次相同的方法,使用两种代码

我最近经常使用Web Api,我有一些方法使用经典的异常抛出方法来发送(例如)错误请求:

throw new HttpResponseException(HttpStatusCode.BadRequest);
在将其中一些更改为IHttpActionResult后,我首先注意到,其中许多使用以下方法运行得更快:

return (IHttpActionResult) BadRequest("Not found");
起初,我认为这只是一个无法测量的差异,但我决定重复几次相同的方法,使用两种代码只是改变发送错误请求的方式,并与邮递员一起计时。 我最大的惊喜是我可以清楚地看到,返回一个动作结果所花费的时间总是至少少30%

我的问题;这两种方法之间的差异是真的还是我遗漏了什么?从理论上讲,两者之间没有任何区别,当然除了捕获异常和渲染的方式。当我比较平均110毫秒的请求时,我无法想象捕获异常和创建对象会花费30%的时间