继四月份发布 Dapper——一个“支持 SQL Server、MySQL、SQLite、SQLCE、Firebird 等数据库的高性能微型 ORM”——之后,Stack Exchange 发布了 Stack Overflow 及其姊妹网站使用的 ASP.NET MVC Profiler。MVC Mini Profiler 是一个内嵌的分析器,需要对被检查的页面做一些修改。
使 用该 Profiler 需要做出两个全局修改。在页面的 head 里面——最好是母版页的 head,需要调用一个方法以将必要的 CSS 和 JavaScript 文件包含进来,同时还需要引入 jQuery 1.6.1。该 Profiler 需要在 Application_BeginRequest 和 Application_EndRequest 的方法调用中分 别进行启动和停止。
在任意一个视图(view)或控制器(controller)中,开发人员可以在 using 表达式中调用 MiniProfiler.Current.Step,将被分析的代码包括在 using 代码块内。如此标记的每部分代码都会出现在结果报告中。Step 可 以嵌套,按照所需级别的粒度进行展示。
该 Profiler 的一个特别有用的功能是它与数据库框架的集成。除了.NET 原生的 DbConnection 类,profiler 还内置了对实体框架(Entity Framework)以及 LINQ to SQL 的支持。任何执行的 Step 都会包括当时查询的次数和所花费的时间。为了检测常见的错误,如 N+1 反模式,profiler 将检测仅有参数值存在差 异的多个查询。
MiniProfiler 是以 Apache License V2.0 协议发布的,你可以在 NuGet 找到。
查看英文原文: Introducing the MVC Mini Profiler from Stack Exchange
评论