ASP.NET MVC 性能优化总结

本文详细介绍了如何使用dotTrace、miniProfiler和Chrome开发工具监测性能问题,并提供了静态资源缓存、OutputCache、JS/CSS压缩合并以及EF二级缓存的优化方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随着项目中各项功能的增加,系统性能越来越糟糕,于是决定对系统做性能优化。现性能优化的相关工作记录下来。
 
一、如何监测性能问题:
1. dotTrace: 一款性能测试工具,能够记录程序执行过程中各个方法的调用情况及所花时间等,好像不能记录网站加载情况。
2. miniProfiler: StackOverflow的一款开源产品,需要在项目中引用做相应的配置,不光能够记录网站的加载情况,还能记录EF的执行情况。适合在开发过程中应用。网址: http://miniprofiler.com/
3. Chrome的开发工具可监控各项资源的加载情况。
 
二、优化方法:
1. 对静态资源添加客户端缓存。
<staticContent>
      <remove fileExtension=".woff" />
      <!-- In case IIS already has this mime type -->
      <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
    </staticContent>
 
2. 添加OutputCache。
filters.Add(new OutputCacheAttribute
            {
                NoStore = true,
                Duration = 10,
                VaryByParam = "*"
            });
 
3. 压缩合并JS,CSS:
利用ScriptBundle,StyleBundle,在BundleConfig文件中注册需要引用的静态资源.
 
4. 对EF加二级缓存:
引用DLL包:EFCache.dll
并在项目中添加如下类,具体步骤参考 http://blog.3d-logic.com/2014/03/20/second-level-cache-for-ef-6-1/
public class Configuration : DbConfiguration
    {
        internal static readonly InMemoryCache Cache = new InMemoryCache();

        public Configuration()
        {
            var transactionHandler = new CacheTransactionHandler(Cache);

            AddInterceptor(transactionHandler);

            Loaded +=
              (sender, args) => args.ReplaceService<DbProviderServices>(
                (s, _) => new CachingProviderServices(s, transactionHandler));
        }

        public static int GetCountOfCache()
        {
            return Cache.Count;
        }
    }

转载于:https://www.cnblogs.com/cxp9876/p/3803720.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值