首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC 3剃刀性能

ASP.NET MVC 3剃刀性能
EN

Stack Overflow用户
提问于 2010-09-30 16:28:18
回答 2查看 26.8K关注 0票数 64

重要更新:请参阅底部的更新5 asp.net MVC3中没有性能问题,这是一个基准问题

我在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行文本,没有代码。所有站点都是以发布模式编译的。我的系统是Windows7,4 gb i7 4核。我已经运行了2次测试来预热iis,这些是第二次运行的结果。apache bench参数: ab -n100000 -c1000 results:

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斯科特·格思里在他的博客中回答道:

我们还没有完全优化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所有测试都是在发布模式下完成的,但是,问题是我的web.config文件中的debug="true" (这也会影响发布版本),在将其更改为false后,问题得到了修复。有趣的是,它只影响这种规模的剃刀模板。在部署时,我们应该考虑到这一点。

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc2 razor               3940               58%
mvc 3 rc2 aspx                4100               58%

感谢asp.net mvc团队,出色的工作!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-12 03:58:37

(响应您的RC2编号的新答案)

感谢您提供的最新数据。以下是几点:

  1. 你的Aspx数字看起来不错,从某种意义上说,我们希望MVC3 Aspx和MVC2 Aspx一样(在这样的Hello World示例中应该有一点慢)
  2. 你的剃刀数字看起来可疑。我们知道Razor比同等的Aspx慢一点,但是,差异不应该大于5%-7%。你的数据显示速度慢了50%,这与我们的结果不符。检查项目是否在发行版中编译,并且在web.config.
  3. Your中设置了debug="false",CPU利用率有点可疑。对于1000个并发请求,CPU的使用率应该是100%。(即使只有8个并发请求也应该足够了,因为您有8个虚拟核心)
  4. 您的测试运行了大约20-25秒。这有点偏低,因为系统中其他地方的短时间(1-2秒)活动突发可能会使您的结果相当significantly.
  5. Related到点4,您是否运行了每个场景一次或几次?你在结果中看到了很大的差异吗?由于您的操作系统在后台执行其他操作,因此通常会在两次运行之间看到不同的结果。
票数 26
EN

Stack Overflow用户

发布于 2010-09-30 16:37:44

您是如何执行基准测试的?您的站点是否以发布模式部署在IIS上?您是否在machine.config中使用了部分?还要记住,ASP.NET MVC3仍处于繁重的开发阶段,所以您不能期望它完全优化。至少要等到它达到RTM。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3828961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档