Asp.net mvc 3 MVC.NET中的最大页面呈现速度是多少?如何提高它?

Asp.net mvc 3 MVC.NET中的最大页面呈现速度是多少?如何提高它?,asp.net-mvc-3,Asp.net Mvc 3,我正在测量页面渲染速度,在OnBeginRequest时启动秒表,并在OnResultExecuted时停止,从而测量整个页面渲染周期。 在渲染期间,我会获得以下时间戳: 0毫秒-OnBeginRequest +1.1毫秒-OnActionExecuting +2毫秒-OnActionExecuted +3毫秒-OnResultExecuted 后三个时间戳当然是特定于应用程序的,但我想知道在应用程序收到请求和动作方法获得控制之间的1.1毫秒内会发生什么 如何减少这一时间? 您使用MVC.NET

我正在测量页面渲染速度,在OnBeginRequest时启动秒表,并在OnResultExecuted时停止,从而测量整个页面渲染周期。 在渲染期间,我会获得以下时间戳:

0毫秒-OnBeginRequest
+1.1毫秒-OnActionExecuting
+2毫秒-OnActionExecuted
+3毫秒-OnResultExecuted

后三个时间戳当然是特定于应用程序的,但我想知道在应用程序收到请求和动作方法获得控制之间的1.1毫秒内会发生什么

如何减少这一时间?
您使用MVC.NET获得的最大渲染速度(每秒页数)是多少?您是如何做到的?

发生了很多事情:解析路由、定位并实例化控制器、调用操作方法。确保您正在以发布模式运行:

<compilation debug="false" />

使您的测量结果更真实。实际上,从接收请求到调用控制器操作之间的时间从来不是瓶颈。您应该集中精力减少在控制器操作中花费的时间。这就是应用程序可能获得真正性能提升的地方。有不同的技术可以提高性能,一种流行的技术是使用缓存

根据:

今天的ASP.NET MVC 3 RC2构建 包含许多错误修复和 性能优化。我们最新的 性能测试表明 ASP.NET MVC 3现在比 ASP.NET MVC 2以及现有的 ASP.NET MVC应用程序将 体验一次轻微的表演 使用更新运行时增加 NETMVC3


呈现页面所需的时间不同于每秒的请求数,这些请求数不是直接相关的值(类似于游戏开发中的FPS和每帧时间)。尤其是在多线程环境中

就我个人而言,在我的机器上,一个空的MVC应用程序在0.8-1.1毫秒内呈现默认控制器和视图。当然,路由集合几乎是空的,因此这可能会节省大量时间。您可以进行一些优化,您可以在网上轻松找到它们,其中一个主要的优化是:清除视图引擎,只添加您正在使用的视图引擎,这将在每次请求时节省到硬盘驱动器的往返时间

ViewEngines.Clear();
ViewEngines.Engines.Add(new WebFormViewEngine()));
至于真正的网站,我能够得到一个真实世界的MVC应用程序,每秒提交2000多个请求。您可能希望尝试的一件事是将临时ASP.Net文件和网站文件夹放在RAM驱动器上,因为MVC和IIS确实会在每次请求时命中物理程序集文件,但实际上,收益太小,不值得注意或花费任何人的时间


如果你看页面生成时间是在1毫秒(这不是完全正确的,因为它在视图的中间,但是非常接近)。该服务器正在RAM驱动器上运行。通过将ASP.Net Temp文件移动到RAM驱动器,您可以将其速度提高一点,但无论如何,我都无法将其控制在0.8毫秒以下。

这就是问题所在-我可以将代码的总处理时间减少到不到1毫秒,但我发现1毫秒是解析路由和执行控制器实例化的巨大开销。我知道这听起来有点像偏执狂,但我只是想深入到这令人讨厌的毫秒之下。@Andy,是的,这听起来像偏执狂,在编程中被称为过早优化。谢谢,我清楚接下来的步骤。一个好的精神病医生可以……)我正在将asp.net mvc4用于我的应用程序。我正在从数据库中获取数千行。但加载页面需要6秒钟以上。请任何人帮助我提高我的应用程序速度