MiniProfiler安装使用心得
MiniProfiler简介:
MVC MiniProfiler是Stack Overflow团队设计的一款对ASP.NET MVC的性能分析的小程序。可以对一个页面本身,及该页面通过直接引用、Ajax、Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL(支持EF、EF CodeFirst等 )。并且以很友好的方式展现在页面上。
该Profiler的一个特别有用的功能是它与数据库框架的集成。除了.NET原生的 DbConnection类,profiler还内置了对实体框架(Entity Framework)以及LINQ to SQL的支持。任何执行的Step都会包括当时查询的次数和所花费的时间。为了检测常见的错误,如N+1反模式,profiler将检测仅有参数值存在差 异的多个查询。
MiniProfiler是以Apache License V2.0协议发布的,你可以在NuGet找到。配置及使用可以看这里:http://code.google.com/p/mvc-mini-profiler
为建立快速的网站黄金参考标准,雅虎2007年为网站提高速度的13个简易规则。
以上这一段是照抄的张善友的博客,原文地址:http://www.cnblogs.com/shanyou/archive/2012/04/03/2430977.html
MiniProfiler安装:
注:我安装的EF6,所以选择此版本,其它版本可对应选择。
注:这里的MVC4是适用MVC4和5两个版本的
到这里,我们需要安装的程序包就都已经安装好了。
MiniProfiler使用:
首先,在你的Global.asax文件中加入:
protected void Application_BeginRequest() { if (Request.IsLocal)//这里是允许本地访问启动监控,可不写 { MiniProfiler.Start(); } } protected void Application_EndRequest() { MiniProfiler.Stop(); }
然后找到你需要监控的页面,在页面中加入:
@using StackExchange.Profiling; @MiniProfiler.RenderIncludes();
注:如果想监控所有页面,可将其加入到布局页中
然后在Web.config页面中加入:
<system.webServer> <handlers> <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" /> </handlers> </system.webServer>
运行后效果:
MiniProfiler监测EF:
在Global.asax文件中加入MiniProfilerEF6.Initialize();,并引入对应命名空间using StackExchange.Profiling.EntityFramework6;
然后随意写个 controller测试一下:
运行后:
在这里我用MiniProfiler对两个查询进行了分类,我们可以看到两个查询分别用了733.3ms和1027.5ms,占整个页面加载的52.4%。