MiniProfiler 是一款性能分析的輕量級程式,可以基於action(request)記錄每個階段的耗時時長,還是可以顯示訪問資料庫時的SQL(支持EF、EF Code First)等 一、安裝程式包 通過Nuget安裝MiniProfiler : Install-Package MiniPr ...
MiniProfiler
是一款性能分析的輕量級程式,可以基於action(request)記錄每個階段的耗時時長,還是可以顯示訪問資料庫時的SQL(支持EF、EF Code First)等
一、安裝程式包
通過Nuget安裝MiniProfiler :
Install-Package MiniProfiler.AspNetCore.Mvc
Install-Package MiniProfiler.EntityFrameworkCore
二、配置
在ConfigureServices方法中添加MiniProfiler服務,放在SwaggerGen方法之前
1 // 添加MiniProfiler服務 2 services.AddMiniProfiler(options => 3 { 4 // 設定訪問分析結果URL的路由基地址 5 options.RouteBasePath = "/profiler"; 6 }).AddEntityFramework();//顯示SQL語句及耗時
激活中間件,啟用MiniProfiler服務 放在SwaggerUI之前
1 //把它放在UseMvc()方法之前。 2 app.UseMiniProfiler();
三、下載Swagger自定義頁面
https://github.com/tenghao6/NetCoreWebApi/blob/master/NetCoreWebApi/index.html
放到項目的根目錄,生成操作設置為:嵌入的資源
【文件】→【屬性】→【生成操作】
在Startup.cs文件中,我們需要修改UseSwaggerUI中間件的配置
1 app.UseSwaggerUI(c => 2 { 3 c.IndexStream = () => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("NetCoreWebApi.index.html"); 4 //訪問swagger UI的路由,如http://localhost:<port>/swagger 5 //預設是swagger 6 c.RoutePrefix = string.Empty; 7 c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); 8 c.DefaultModelsExpandDepth(-1); //設置為 - 1 可不顯示models 9 c.DocExpansion(DocExpansion.None);//設置為none可摺疊所有方法 10 });
註意:這裡NetCoreWebApi是項目的命名空間名
重新啟動項目,Swagger文檔頁面的左上角就出現了一個小的面板,當請求介面之後,會顯示出當前請求的分析數據。
是不是很炫酷!