ASP.NET MVC 3 Razor性能怎么样?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (133)

请参阅底部的更新5,在asp.net mvc 3中没有性能问题,这是一个基准问题

我在asp.net mvc2,3 aspx和3 razor中制作了一个简单的hello世界项目并对它们进行了基准测试。我看到的是:

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

razor有什么问题,它很慢?

我已经重做了测试。所有4个测试虚拟目录使用相同的.net 4集成模式应用程序池。所有的项目都是通过添加新的空x项目并添加1页,1行文本和无代码。所有网站都以发布模式编译。我的系统是Windows 7,4 Gb i7 4核心。我已经运行了2次测试来预热iis,这是第二次运行的结果。apache工作台参数: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%

Scott Guthrie在他的博客中回答道:

我们还没有完全优化MVC3(通常我们会进行很多缓存调优)。我们预计在最终发布之前,剃须刀与.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%

在发布模式下完成的所有测试,但是,问题出现debug="true"在我的web.config文件中(也会影响发布版本),将其更改为false后,问题得到解决。它很有趣,它只影响这种规模的剃刀模板。这应该是我们关于部署的想法。

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc2 razor               3940               58%
mvc 3 rc2 aspx                4100               58%
提问于
用户回答回答于

感谢更新的:

  1. Aspx数字看起来不错,因为我们预计MVC3 Aspx将与MVC2 Aspx一致(在这样的Hello World示例中会有点慢)
  2. 你的razor数字看起来很可疑。我们知道Razor比等效的Aspx慢一点,但是差别应该不大于5%-7%。你的数字表示慢了50%,这与我们的结果不符。检查项目是否在Release中编译,并debug="false"在web.config中设置。
  3. 你的CPU利用率有点怀疑。有1000个并发请求,CPU应该100%使用。(即使只有8个并发请求应该足够,因为你有8个虚拟内核)
  4. 测试运行约20-25秒。这有点偏低,因为在系统其他地方短时间(1-2秒)的活动爆发可能会非常显着地甩掉你的结果。
  5. 与第4点相关,是否曾经运行过每次场景一次或几次?你看到结果有很大的差异吗?由于操作系统在后台执行其他操作,因此通常会在运行之间看到不同的结果。
用户回答回答于

你是如何执行基准测试的?网站是否以模式发布部署在IIS上?是否<deployment retail="true" />在machine.config中使用了该部分?另外请记住,ASP.NET MVC 3仍处于严重的发展中,所以你不能指望它已经完全优化了。至少等到它碰到RTM。

扫码关注云+社区

领取腾讯云代金券