MiniProfiler.EF6监控调试MVC5和EF6的性能

转载自:https://www.lanhusoft.com/Article/125.html

以前开发Webform的时候可以开启trace来跟踪页面事件,这对于诊断程序的性能是有很大的帮助的,起到事半功倍的作用,今天我就来谈用mvc开发项目的调试和性能监控。EF框架自动给我生成sql语句,当我们的程序遇到性能问题的时候我们可以用MiniProfiler.EF来监控调试MVC和EF的性能,查看生成的sql语句、运行了哪些sql,以及所花的时间。MiniProfiler.EF,一个轻量级开源的mvc性能调试、监控组件MiniProfiler专门为EF定制的版本。下面通过一个具体一例子的说明怎么在我们的项目中用MiniProfiler.EF6监控调试MVC和EF的性能。

1、安装MiniProfiler.EF6

nuget搜索框中输入MiniProfiler,将出现下面结果:

点击安装将把MiniProfiler.EF6相关的dll加到项目中。

2、添加MiniProfiler.EF相关代码到项目里面

1、在Global.asax加入MiniProfiler相关的监控代码

修改之后完整内容为:

using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using StackExchange.Profiling;
using StackExchange.Profiling.EntityFramework6;
namespace MiniProfilerDemo
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            MiniProfilerEF6.Initialize();
        }
        protected void Application_BeginRequest()
        {
            MiniProfiler.Start();
        }
        protected void Application_EndRequest()
        {
            MiniProfiler.Stop();
        }
    }
}

其中是在Application_Start加入了MiniProfilerEF6.Initialize()和添加了Application_BeginRequest、Application_BeginRequest两个Application的事件函数,这个的作用分别是初始化MiniProfilerEF6和开始、结束MiniProfiler监控。

2、修改_Layout.cshtml视图文件

在Views\Shared\_Layout.cshtml文件的body前面加上一段代码,让监控展示在页面上。

@StackExchange.Profiling.MiniProfiler.RenderIncludes()

如下图:

3、在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>

为了要在页面上显示MVC和EF的调试跟踪时间必须要加入上面的代码。如下图:

在system.webServer配置结点下的handlers结点,加入了一个名为MiniProfiler的handler。

3、查看运行结果

运行程序,查看页面如下图:

4、细微监控方法内部的时间

现在我们为ProductController加上监控,监控获取从数据库中获取Product记录所花的时间。我们把ProductController修改为:

using MiniProfilerDemo.DAL;
using System.linq;
using System.Web.Mvc;
using StackExchange.Profiling;
using System.Collections.Generic;
using MiniProfilerDemo.Models;
namespace MiniProfilerDemo.Controllers
{
    public class ProductController : Controller
    {
        public ActionResult Index()
        {
            using (EFDbContext db = new EFDbContext())
            {
                var profiler = MiniProfiler.Current;
                List<Product> m;
                using (profiler.Step("获取Product列表"))
                {
                    m = db.Products.ToList();
                }
                return View(m);
            }
        }
    }
}

重新生成项目,再次运行查看页面,如下图:

可以看到上面多了我们刚才手动加的“获取Product列表”条记录。这样可以细微监控方法内部的时间,方便、快速地帮我们找出我们的程序的瓶颈所在。

时间: 2024-08-03 15:40:32

MiniProfiler.EF6监控调试MVC5和EF6的性能的相关文章

MiniProfiler(MiniProfiler.EF6监控调试MVC5和EF6的性能)

git:  https://github.com/MiniProfiler 以前开发Webform的时候可以开启trace来跟踪页面事件,这对于诊断程序的性能是有很大的帮助的,起到事半功倍的作用,今天我就来谈用mvc开发项目的调试和性能监控.EF框架自动给我生成sql语句,当我们的程序遇到性能问题的时候我们可以用MiniProfiler.EF来监控调试MVC和EF的性能,查看生成的sql语句.运行了哪些sql,以及所花的时间.MiniProfiler.EF,一个轻量级开源的mvc性能调试.监控组

MVC教程--MiniProfiler.EF监控调试MVC和EF的性能

上一篇谈到mvc中ef输出执行sql日志:来谈用mvc开发项目的调试和性能监控.EF框架自动给我生成sql语句,当我们的程序遇到性能问题的时候我们可以用MiniProfiler.EF来监控调试MVC和EF的性能,查看生成的sql语句.运行了哪些sql,以及所花的时间.MiniProfiler.EF,一个轻量级开源的mvc性能调试.监控组件MiniProfiler专门为EF定制的版本.下面通过一个具体一例子的说明怎么在我们的项目中用MiniProfiler.EF监控调试MVC和EF的性能. 1.安

MiniProfiler监控调试MVC5以及EntityFramework6性能

原文地址:https://www.cnblogs.com/wift/p/11064545.html 想要通过在MVC中view中直观的查看页面加载以及后台EF执行情况,可以通过MiniProfiler小工具来实现. 但是从网上搜索的相关信息要么是MVC4下的老版本的MiniProfiler,要么就是标题是MVC5+EF6但是里讲的根本实现不了结果. 经过我自己一番折腾后,终于成功搞定. 具体操作分为三步: ps:没图说个毛啊. 上图: 现在将具体的操作步骤记录一下,方便以后用到. 1.安装Min

MVC5与EF6 Code First 第一个入门完整实例教程

mvc如今火的不行,我今天就来介绍一个MVC5与EF6开发的实际的入门实例,因为EF6默认是Code First的,所以我今天也就用EF6 的Code First来做一个简单的实例,为了让实例显得简单,这里面就用一个表,用来展示一个表的记录,model和dal也都在一个项目中.下面是详细步骤: 1.创建一个mvc的项目 打开VS2013新建项目一个Web项目,框架选.NET Framewok4.5,项目名字为MiniProfilerDemo.如下图: 接下来在弹出的窗口中选择项目的模板为mvc,

JAMon监控web工程方法的调用性能

JAMon简介 JAMon的全名是:Java Application Monitor.它是一个小巧的,免费的,高性能的,线程安全的性能监测工具. 它可以用来测定系统的性能瓶颈,也可以用来监视用户和应用程序之间的交互情况. Jamon主要是用来检测jee的应用程序. JAMon集成到项目中 假设现在有一个项目名为bookShop,目录结构如下: bookshop java resources src com.allen.bookshop filter PageMonFilter webConten

MVC5中EF6 Code First启动慢及间隙变慢的一些优化处理

问题描述: 第一次访问的时候很慢,后面再次打开页面很快,过了一段时间不访问页面然后再次打开页面又像第一次那样很慢. 采用的技术和环境: 使用技术:EF6+MVC5 服务器环境:Windows 2012,Windows 2008 都是64位 + IIS7.5 第一.问题原因分析 EF方面的原因: 1.Code First第一次启动会对比程序中的Model与数据库表(database initializer ),生成Model与数据库的映射视图 2.随着EF的开源,EF从6开始就不会包含在.net

MVC5+EasyUI+EF6+Linq通用权限系统出炉--登录(2)

1.输入验证码后 自动识别验证码并登录. 2.登录后,系统后台如下,多个主题切换.

EF6基础系列(十一)---EF6中的异步查询和异步保存

EF6中的异步查询和异步保存 在.NET4.5中介绍了异步操作,异步操作在EF中也很有用,在EF6中我们可以使用DbContext的实例进行异步查询和异步保存. 1.异步查询 下边是一个通过L2E语法实现异步查询的栗子: private static async Task<Student> GetStudent() { Student student = null; using (var context = new SchoolDBEntities()) { Console.WriteLine

zabbix监控window2008 R2的IIS一些性能监控

公司大部分的站点所在的服务器都是在Windows2008 R2的服务器上面,所以需要对服务器上面的一些IIS服务进行监控. 监控环境:zabbix2.4.5 在客户端并不需要对Windows2008做任何的操作,只需要在zabbix的界面端创建一个IIS监控的模块即可. 创建IIS的模板.(度娘一大堆) 创建监控项:(这才是重点) 以上都是IIS服务的一些监控项和监控解释 Get Requests/sec使用GET方法每秒发送的HTTP 请求数.Get请求通常用于基本文件检索或图像映射,虽然也可