银河网投[网址]www.308877.com-官网首页

您的位置:银河网投 > www.308877.com > MiniProfiler工具介绍

MiniProfiler工具介绍

2019-10-10 17:24

    MiniProfiler是一款针对.NET, Ruby, Go and Node.js的性质分析的轻量级程序。能够对一个页面本身,及该页面通过一贯援引、Ajax、Iframe情势拜候的别的页面进行监察和控制,监察和控制内容囊括数据库内容,并能够来得数据库访谈的SQL(援救EF、EF CodeFirst等 )。况且以很协和的方法表以后页面上。

    MiniProfiler官网:

    MiniProfiler的八个极度有效的效应是它与数据库框架的并轨。除了.NET原生的 DbConnection类,MiniProfiler还停放了对实体框架(Entity Framework)以至LINQ to SQL、RavenDb和MongoDB的支撑。任何试行的Step都会包罗那时候查询的次数和所花费的时刻。为了检验常见的百无一用,如N+1反情势,profiler将检查实验唯有参数值存在出入的多少个查询。

    迷你Profiler是以Apache License V2.0合计发表的,你能够在NuGet找到。

  过去直接使用Sqlserver Profiler,然则开掘实际是太伤心了,你只可以进行新建、过滤、清除、关闭等操作,何况过滤筛选往往相比较麻烦调控。后来开采MiniProfiler工具拾分好用。

  同类监察和控制工具备NanoProfiler,下载地址:https://github.com/ef-labs/nanoprofiler/issues/1

Demo演示

德姆o开荒情形

  • Win10
  • VS2013

防患于未然工作

新建MVC项目WebAppEF,使用Northwind数据库。

1、先安装MiniProfiler

图片 1

2、安装MiniProfiler.MVC4

图片 2

3、安装MiniProfiler.EF

图片 3

4、修改Global.asax文件

本人这里只需求在开垦条件使用SQL品质监察和控制,所以利用了#if DEBUG,因为生产条件,大家平常是使用release方式。同期,迷你Profiler还帮助授权,这里不做牵线。

using StackExchange.Profiling;
using StackExchange.Profiling.EntityFramework6;
using System;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace WebAppEF
{
publicclassMvcApplication : System.Web.HttpApplication
    {
protectedvoid Application_Start()
        {
#if DEBUG
MiniProfilerEF6.Initialize();
#endif
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
protectedvoid Application_BeginRequest(Object source, EventArgs e)
        {
#if DEBUG
MiniProfiler.Start();
#endif
        }
protectedvoid Application_EndRequest()
        {
#if DEBUG
MiniProfiler.Stop();
#endif
        }
    }
}

5、在您的布局页(_Layout)中,举个例子以下这种布局,修改_Layout.cshtml

@using StackExchange.Profiling;
<head>
 ..
</head>
<body>
  ...
  @MiniProfiler.RenderIncludes()
</body>

6、修改配置文件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>

图片 4

7、添加控制器测试代码

        public ActionResult Index()
        {
            // create the entity object
            using (NorthwindEntities mobjentity = new NorthwindEntities())
            {
                ViewBag.SelectCustomer = mobjentity.Customers.Select(x => x.City == "Delhi").ToList();
            }

            var profiler = MiniProfiler.Current;
            using (profiler.Step("查询Customers的数据"))
            {
                using (NorthwindEntities entity = new NorthwindEntities())
                {
                    ViewBag.data = entity.Customers.ToList();
                }
            }
            return View();
        }

8、按F5调试运行

图片 5图片 6图片 7

说明:标记为duplicate的部分,代表在一次请求当中,重复执行了查询,可以进行优化。通过Step可以对独立的sql块进行标记。

大范围错误

1、The Entity Framework was already using a DbConfiguration instance before an attempt was made to add an 'Loaded' event handler. 'Loaded' event handlers can only be added as part of application start up before the Entity Framework is used. See for more information.

图片 8

深入分析:错误提醒的概况是在试图为DbConfiguration 实例加Loaded事件从前早就在其余地点选用了那一个实例了

化解方案:把MiniProfiler.EF6.Initialize()在位于Database.SetInitializer<WebAppEF.Models.NorthwindEntities>(null); 此前。

2、Could not load file or assembly 'MiniProfiler, Version=3.0.11.0, Culture=neutral, PublicKeyToken=b44f9351044011a3' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

图片 9

浅析:找不到MiniProfiler程序集可能它的看重性项。程序集定义和引用不兼容。

消除方案:查看Web.config中是还是不是存在如下配置节点

<dependentAssembly>
<assemblyIdentityname="MiniProfiler"publicKeyToken="b44f9351044011a3"culture="neutral" />
<bindingRedirectoldVersion="0.0.0.0-3.2.0.157"newVersion="3.2.0.157" />
</dependentAssembly>

假诺荒诞不经则增加,要是存在,则检查MiniProfiler版本号和packages.config中的版本号是还是不是同样,借使不等同将要对版本号进行更动。

参考:

选用MiniProfiler调节和测量检验ASP.NET MVC网址品质

利用MiniProfiler监察和控制EF与.NET MVC项目(Entity Framework 延伸体系1)

本文由银河网投发布于www.308877.com,转载请注明出处:MiniProfiler工具介绍

关键词: