.NetCore學習筆記:五、MiniProfiler監控運行效率


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM