重要更新:请参阅底部的更新5,asp.net mvc 3中没有性能问题,这是一个基准问题
我在asp.net mvc2,3 aspx和3 razor中做了一个简单的hello world项目并对它们进行了基准测试.我看到的是:
System Requests per second
-------------------------------------------
asp.net mvc 2 ASPX 4200
asp.net mvc 3 Beta 1 ASPX 3200
asp.net mvc 3 Beta 1 Razor 1700
Run Code Online (Sandbox Code Playgroud)
剃刀有什么问题,它太慢了?
更新: 我重做了测试.所有4个测试虚拟目录都使用相同的.net 4集成模式应用程序池.所有项目都是通过添加新的空x项目并添加1页,其中包含1行文本而没有代码完成的.所有站点都以发布模式编译.我的系统是Windows 7,4 gb i7 4核心.我已经运行了2次测试来预热iis,这些都是第二次运行结果.apache bench参数:ab -n100000 -c1000结果:
System Requests per second CPU Utilization
----------------------------------------------------
asp.net 4 4780 43%
mcv 2 4322 58%
mvc 3 beta 1 aspx 2324 54%
mvc 3 beta 1 razor 1615 54%
Run Code Online (Sandbox Code Playgroud)
更新2 Scott Guthrie在他的博客中回答:
我们还没有完全优化MVC3(我们通常会进行大量的缓存调整).我们希望razor在最终发布之前与.aspx视图引擎具有相同的性能.
System Requests per second …Run Code Online (Sandbox Code Playgroud) 首先,我最近尝试使用Webmatrix在cshtml中使用剃刀进行构建,我发现它比构建aspx Web表单耗时少得多.习惯了之后,我现在可以更快地完成我在aspx项目中所做的所有事情并且代码更少......
现在,我今天花了很多时间在使用cshtml的公司上搜索谷歌等,他们正在使用它等等,但我找不到大量的例子.也许我只是在寻找错误的地方,使这个问题标题不正确,但我只是觉得有一个原因,公司仍然使用aspx而不是cshtml.
我即将在下个月为一个大客户启动一个项目,我无法决定是否采取这种方式构建它(他们需要一个自定义博客,登录区域等).有什么想法吗?我发现在辩论中使用的唯一其他堆栈线程是:Razor/CSHTML - 我们拥有的任何好处?
谢谢,
亚当