【问题标题】:ASP.NET MVC 5 Web Application Slow PerformanceASP.NET MVC 5 Web 应用程序性能缓慢
【发布时间】:2017-08-06 08:07:58
【问题描述】:

我正在开发一个新的 ASP.NET MVC Web 应用程序,我发现所有页面都需要大约 12-15 秒才能加载,而不管控制器或视图中的内容如何。我的页面大约需要 8 秒,但控制器中没有代码,除了 return View() 和仅在 html 中使用页面名称查看页面。

我运行了 SQL Profiler,响应速度非常快,因此似乎 MVC 路由或某些东西一直在占用。到目前为止,我尝试了以下方法:

  1. 从 global.asax 中删除了所有视图引擎并仅使用 Razor 视图引擎
  2. 为 css 和 js 启用捆绑和缩小
  3. 在 IIS 7 下启用静态和动态内容压缩
  4. 我在我们的开发服务器上部署了 Release Build,但性能仍然相同

请让我知道 MVC 应用程序性能缓慢的原因可能是什么。

另一方面,对于大约 150-250 个用户同时浏览的企业 Web 应用程序,我应该拥有的最佳服务器配置是什么,例如 CPU、处理器、RAM 等。

【问题讨论】:

  • 测量实际请求持续时间会很有用(例如,在 Developer Utils 中使用 Chrome 的网络分析器或称为 Fiddler 的工具),因此首先您要关注纯服务器端性能并忽略可能的脚本延迟.稍后,您可以使用 Microsoft 的 Application Insights 工具,它们有助于发现瓶颈
  • 如果您创建一个没有任何内容的全新默认模板应用程序,您是否会看到相同的性能问题?如果不是,那么您就知道这是从那以后添加的代码。
  • 问题确实在于加载 URL。当我单击站点中的任何链接以导航到不同的 URL 时,浏览器将需要 5-6 秒来更新浏览器地址栏中的 URL,之后大约需要 1-3 秒来加载页面。所以我相信大部分时间都浪费在寻找网址上。谁能指出为什么在“href”属性中已经存在路径时要花时间查找 URL。

标签: asp.net-mvc performance iis-7 asp.net-mvc-routing windows-server-2012


【解决方案1】:

我遇到了类似的问题,并找到了罪魁祸首。它是右键单击项目属性->Web->调试器部分下的“NativeCode”复选框。由于从 GAC、GAC64 等加载符号,这会导致加载时间非常慢。

取消选中 NativeCode 复选框后,网站加载速度非常快。 请试一试。

【讨论】: