哪个更有效:传统路由或属性路由?

时间:2014-10-29 18:12:06

标签: c# asp.net-mvc performance asp.net-mvc-routing attributerouting

我最近使用ASP.NET MVC 5进行项目。使用属性路由非常简单方便。我想知道在大型应用程序中哪种比较传统的路由方法更有效率。

2 个答案:

答案 0 :(得分:2)

MVC路由仅在启动时缓存一次。在启动时执行反射会有一点点性能损失。启动后,没有任何区别。当我说很小的时候,对于一个大型网站来说,从0.1毫秒到1秒或2秒。

但是此时不要预先优化。无论如何,MVC都基于反思。

将路由保持在控制器的操作(维护)旁边的好处远远超过它引入的微小性能开销。

答案 1 :(得分:0)

我会说,作为这么多问题的答案,"这取决于。"

效率定义为您从流程中获得的有用输出量超过所花费的总工作量。因此,按照这个定义,我会关注人的效率,因为一个小时的程序员时间可能大约相当于亚马逊EC2上一个月的计算能力。

根据微软的说法:

  

当路由定义与操作位于同一位置时,在同一源文件中而不是在外部配置类上声明时,可以更容易地推断URI和操作之间的映射。

我会更进一步,并说它更容易弄清楚到底是什么,以及什么是什么。以这种方式为我节省了无数个小时;事实上,我对集中式映射策略感到非常沮丧,因此我将所有服务转换为使用基于属性的格式。