MiniProfiler
是一款性能分析的轻量级程序,可以基于action(request)记录每个阶段的耗时时长,还是可以显示访问数据库时的SQL(支持EF、EF Code First)等
一、安装程序包
通过Nuget安装MiniProfiler :
Install-Package MiniProfiler.AspNetCore.Mvc
Install-Package MiniProfiler.EntityFrameworkCore
二、配置
在ConfigureServices方法中添加MiniProfiler服务,放在SwaggerGen方法之前
- // 添加MiniProfiler服务
- services.AddMiniProfiler(options =>
- {
- // 设定访问分析结果URL的路由基地址
- options.RouteBasePath = "/profiler";
- }).AddEntityFramework();//显示SQL语句及耗时
激活中间件,启用MiniProfiler服务 放在SwaggerUI之前
- //把它放在UseMvc()方法之前。
- app.UseMiniProfiler();
三、下载Swagger自定义页面
https://github.com/tenghao6/NetCoreWebApi/blob/master/NetCoreWebApi/index.html
放到项目的根目录,生成操作设置为:嵌入的资源
【文件】→【属性】→【生成操作】
在Startup.cs文件中,我们需要修改UseSwaggerUI中间件的配置
- app.UseSwaggerUI(c =>
- {
- c.IndexStream = () => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("NetCoreWebApi.index.html");
- //访问swagger UI的路由,如http://localhost:<port>/swagger
- //默认是swagger
- c.RoutePrefix = string.Empty;
- c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
- c.DefaultModelsExpandDepth(-); //设置为 - 1 可不显示models
- c.DocExpansion(DocExpansion.None); //设置为none可折叠所有方法
- });
注意:这里NetCoreWebApi是项目的命名空间名
重新启动项目,Swagger文档页面的左上角就出现了一个小的面板,当请求接口之后,会显示出当前请求的分析数据。
点击sql(ms)下面的耗时,可查看详细SQL信息: