使用MvcMiniProfiler调试ASP.NET MVC网站性能
什么是MvcMiniProfiler?
一款由stackoverflow.com团队开发,专门针对ASP.NET MVC站点进行性能调试的工具,同时,其中的MvcMiniprofiler.EntityFramework组件,能直接输出当前页面执行了哪些SQL语句。
包括以下核心组件:
- MvcMiniProfiler
- MvcMiniProfiler.EntityFramework
如何安装?
一、环境准备
- Visual Studio 2010
- ASP.NET MVC项目
- 如果需要调试EF,建议升级到Entity Framework 4.2
二、安装
推荐使用NuGet方式进行安装。推荐重典的文章:NuGet安装及简单使用
- 第一步:在引用上右键选择“Manage NuGet Packages”
- 第二步:Online搜索miniprofiler
安装MiniProfiler、MiniProfiler.EF、MiniProfiler.MVC3,同时会自动安装依赖组件:WebActivator, 同时也会自动在项目里面添加代码文件:MiniProfiler.cs - 第三步:修改代码使MvcMiniProfiler生效
在global.cs的Application_Start事件里面增加代码: MvcMiniProfiler.MiniProfilerEF.Initialize();
修改View的layout文件,在head区域增加如下代码:@MvcMiniProfiler.MiniProfiler.RenderIncludes()
使用
如果安装步骤一切顺利的话,打开站点的时候,就可以在左上角看到页面执行时间了,点开可以看到更详细的信息,如果有SQL的话,还会显示SQL语句信息,非常的方便。 页面上如果有ajax请求,也会同时显示到左上角。如果左上角显示红色提示,则表示可能存在性能问题需要处理:
点开SQL部分,可以看到详细的SQL语句
标记为duplicate的部分,代表在一次请求当中,重复执行了查询,可以优化。
总结
MvcMiniProfiler确实是一款简便易用的工具,适合进行代码层面和部分SQL层面的优化。在某些方面肯定不能替代像SQL Profiler、.Net profiler、Windbg之类的工具,个人感觉其优势在于:
- 使用简便
- 快速定位问题
- 直观、明了