MiniProfiler是一款针对.NET, Ruby, Go and Node.js的性能分析的轻量级程序。可以对一个页面本身,及该页面通过直接引用、Ajax、Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL(支持EF、EF CodeFirst等 )。并且以很友好的方式展如今页面上。
MiniProfiler官网:http://miniprofiler.com/
MiniProfiler的一个特殊有用的功能是它与数据库框架的集成。除了.NET原生的 DbConnection类,MiniProfiler还内置了对实体框架(Entity Framework)以及LINQ to SQL、RavenDb和MongoDB的支持。任何执行的Step都会包括其时查询的次数和所花费的时间。为了检测常见的错误,如N+1反模式,profiler将检测仅有参数值存在差别的多个查询。 二、MiniProfiler用法
1、Nuget包安装:
//Mvc
Install-Package MiniProfiler.AspNetCore.Mvc
//EF分析添加
Install-Package MiniProfiler.EntityFrameworkCore
//Reids 缓存添加
Install-Package MiniProfiler.Providers.Redis
复制代码
2、配置MiniProfiler:修改Startup.cs a) 注入MiniProfiler
public void ConfigureServices(IServiceCollection services)
{
// ...其他配置...
// 注入MiniProfiler
services.AddMiniProfiler(options =>
{
//获取redis配置
var redisOptions = App.GetOptions<RedisOptions>();
if (redisOptions.Enable)
options.Storage =
new RedisStorage((ConnectionMultiplexer)App.GetService<IConnectionMultiplexer>
());
else
options.Storage = new MemoryCacheStorage(App.GetService<IMemoryCache>(),
TimeSpan.FromMinutes(60));
//访问地址路由根目录;默认为:/mini-profiler-resources
options.RouteBasePath = "/profiler";
//数据缓存时间
(options.Storage as MemoryCacheStorage).CacheDuration = TimeSpan.FromMinutes(60);
//sql格式化设置
options.SqlFormatter = new StackExchange.Profiling.SqlFormatters.InlineFormatter();