MiniProfiler是一個簡單且高效的小型分析器,可用于.NET,Ruby,Go和Node.js.
MiniProfiler不是將自己附加到每一個方法上,因為這樣會有強侵入性而且也不是專注于分析性能問題,
它是一個ADO.NET的分析器,可以分析對于ADO.NET(SQL Server、Oracle等)、LINQ-to-SQL、EF(Code First&EF Core)的原始呼叫(如生成的sql陳述句),
可編程式的分析器,通過在想要分析的步驟上加上step,
MiniProfiler官網:http://miniprofiler.com/
MiniProfiler開源地址:https://github.com/MiniProfiler/dotnet
MiniProfiler在.NetCore中使用起來非常的方便,配置簡單,下面我們就來看一下怎么配置:
1、在web專案中安裝 MiniProfiler.AspNetCore.Mvc 程式包,

2、在Startup.cs的ConfigureServices中配置MiniProfiler,這里主要完成MiniProfiler的自定義配置(如路由,如果沒有特殊要求默認即可,)和內部服務在容器中的注入,
1 public void ConfigureServices(IServiceCollection services) 2 { 3 services.AddMiniProfiler(); 4 services.AddControllersWithViews(); 5 }
3、在Startup.cs的Configure中配置MiniProfiler,這里主要啟用MiniProfilerMiddleware對HTTP請求進行監控,
1 public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 2 { 3 ...... 4 app.UseMiniProfiler(); 5 ...... 6 }
4、在為資料庫啟用MiniProfiler性能監控,將原有的_connection = new MySqlConnection(connectionString);替換成_connection = new ProfiledDbConnection(new MySqlConnection(connectionString), MiniProfiler.Current);就可以了,
1 public UnitOfWork(IConfiguration configuration) 2 { 3 var connectionString = configuration.GetConnectionString("SqlConnection"); 4 _connection = new ProfiledDbConnection(new MySqlConnection(connectionString), MiniProfiler.Current); 5 _connection.Open(); 6 }
5、自定義監控,可以對指定的一段代碼進行性能監控
1 public TestDto Get(string id) 2 { 3 using (MiniProfiler.Current.Step("一個測驗")) { 4 var test = _testDomain.Get(id); 5 return test.MapTo<TestDto>(); 6 } 7 }
6、頁面添加參考和標簽



最后我們來看一下成果:

單機“share”可以查看詳情

根據監控的資料,我們就能很好的了解整個程式的性能情況,
原始碼地址:https://github.com/letnet/NetCoreDemo
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/42885.html
標籤:.NET Core
上一篇:dotnet ef 無法執行,因為找不到指定的命令或檔案
下一篇:.Net Core Cors跨域
