重要更新:请参阅底部的更新 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
剃须刀怎么了,这么慢?
更新: 我已经重做了测试。所有 4 个测试虚拟目录都使用相同的 .net 4 集成模式应用程序池。所有项目都通过添加新的空 x 项目并添加 1 页与 1 行文本且没有代码来完成。所有站点都以发布模式编译。我的系统是windows 7, 4 gb i7 4 cores。我已经运行了 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%
更新 2 Scott Guthrie 在他的博客中回答:
我们还没有完全优化 MVC3(我们通常会做很多缓存调整)。我们希望 razor 在最终发布之前与 .aspx 视图引擎具有相同的性能。
System Requests per second CPU Utilization
----------------------------------------------------
mvc 3 rc1 razor 1960 54%
mvc 3 rc2 razor 2187 54%
mvc 3 rc2 aspx 4014 58%
更新 5在发布模式下完成的所有测试,但问题出debug="true"
在我的 web.config 文件中(这也影响发布版本),将其更改为 false 后,问题已修复。有趣的是,它只影响这种规模的剃刀模板。我们应该在部署时考虑到这一点。
System Requests per second CPU Utilization
----------------------------------------------------
mvc 3 rc2 razor 3940 58%
mvc 3 rc2 aspx 4100 58%
感谢 asp.net mvc 团队,干得好!