如何提高ASP ?NET MVC应用程序性能?


当前回答

如果您正在运行您的ASP。NET MVC应用程序在Microsoft Azure (IaaS或PaaS)上,然后至少在第一次部署之前执行以下操作。

Scan your code with static code analyzer for any type of code debt, duplication, complexity and for security. Always enable the Application Insight, and monitor the performance, browsers, and analytics frequently to find the real-time issues in the application. Implement Azure Redis Cache for static and less frequent change data like Images, assets, common layouts etc. Always rely on APM (Application Performance Management) tools provided by Azure. See application map frequently to investigate the communication performance between internal parts of the application. Monitor Database/VM performance too. Use Load Balancer (Horizontal Scale) if required and within the budget. If your application has the target audience all over the globe, then use Azure Trafic Manager to automatically handle the incoming request and divert it to the most available application instance. Try to automate the performance monitoring by writing the alerts based on low performance.

其他回答

以下是要做的事情

内核模式缓存 管道模式 移除未使用的模块 runAllManagedModulesForAllRequests 不要使用wwwroot 删除未使用的视图引擎和语言

当通过LINQ访问数据依赖IQueryable…

为什么使用AsQueryable()而不是List()?

... 并利用一个好的存储库模式:

在存储库模式中加载子记录

这将优化数据访问,以确保只加载需要的数据。

Gzip实现。 对部分视图使用异步呈现。 最小化数据库命中次数。 使用编译后的查询。 运行分析器找出不必要的匹配。优化所有返回响应时间超过1秒的存储过程。 使用缓存。 使用捆绑最小化优化。 对只读内容使用会话缓存和本地存储等HTML 5实用程序。

另外,如果你使用NHibernate,你可以为查询打开和设置二级缓存,并添加到查询范围和超时。并且有踢屁股的EF, L2S和NHibernate分析器- http://hibernatingrhinos.com/products/UberProf。这将有助于调优您的查询。

使用最新版本的任务并行库(TPL),根据. net版本。必须根据不同的用途选择正确的TPL模块。