使用MiniProfiler调试ASP.NET web api项目性能

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用MiniProfiler调试ASP.NET web api项目性能相关的知识,希望对你有一定的参考价值。

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

在WebApi中,对其性能进行分析监测是很有必要的。而悲剧的是,MVC项目中可以使用的MiniProfiler或Glimpse等,这些都不支持WebApi项目,而且WebApi项目通常也没有界面,不能进行性能分析的交互。在这篇文章中,我们就来一步步实现为WebApi项目集成Miniprofiler。集成后,我们可以监控EF执行效率,执行语句,页面执行时间等,这些结果将以很友好的方式显示在界面上。

本质上,集成Miniprofiler可以分解为三个问题:

  1. 怎样监测一个WebApi项目的性能。

  2. 将性能分析监测信息从后端发送到UI。

  3. 在UI显示分析监测结果。

首先安装Miniprofiler,MiniProfiler.EF6

在Global.asax  加入

 

运行项目,http://localhost//profiler/results-index  即可看到监测结果

以上是关于使用MiniProfiler调试ASP.NET web api项目性能的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET CORE MVC用时分析工具MiniProfiler

性能工具MiniProfiler在Asp.Net WebForm跟踪EntityFramework

MiniProfiler 未显示在 asp.net MVC 上

使用带有实体框架代码优先和 ASP.NET MVC 3 和 mvc miniprofiler 的 SQL Server CE 时出现问题

.NET Core 的 MiniProfiler 是不是有任何可行的替代方案?

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