前言

接下來會用到 CoreProfiler 這個工具來觀看我們API的效能,就花一點時間紀錄一下用法。

本文

CorePofiler 這個工具是提供給 Core 版本的效能工具,也有給 dotnet framework 的版本 NanoProfiler

用到的Nuget

  • CoreProfiler.Web 安裝在 Application。
  • CoreProfiler 安裝在 Application 跟要監看的類別庫。

使用方式

1、在我們需要監看的地方加上以下程式。

var stepName = $"{nameof(這邊是監看的類別)}.{nameof(這邊是監看的方法)}";
using (ProfilingSession.Current.Step(stepName))
{ 
            
}

2、在 Service 與 Repository 的地方都加上。

Service:

Repository:

3、若要監看與 DB 存取資料的狀況,可以到 DatabaseHelper 這麼做。

        /// <summary>
        /// 建立連線
        /// </summary>
        /// <returns></returns>
        public IDbConnection GetConnection(string connectionString)
        {
            var conn = new ProfiledDbConnection
                (
                    new SqlConnection(connectionString),
                    () => ProfilingSession.Current is null
                        ? null
                        : new DbProfiler(ProfilingSession.Current.Profiler)
                );

            return conn;
        }

4、CoreProfiler 的設定,可以建立一個 coreprofiler.json 的檔案。

{
  //資料保存上限
  "circularBufferSize": 200,
  //要過濾掉的項目
  "filters": [
    {
      "key": "/coreprofiler",
      "value": "/coreprofiler",
      "type": "CoreProfiler.ProfilingFilters.NameContainsProfilingFilter, CoreProfiler"
    },
    {
      "key": "static files",
      "value": "ico,jpg,js,css,svg,json,ttf,woff,woff2,eot",
      "type": "CoreProfiler.ProfilingFilters.FileExtensionProfilingFilter, CoreProfiler"
    }
  ]
}

提醒:
檔案屬性要記得調整。

5、到 StartUp Cofigure 的地方引用 CoreProfiler。

app.UseCoreProfiler(true);

6、接下來就可以進行測試了。

可以先連到 /nanoprofiler/view 觀看有沒有成功啟用

接下來試打我們剛剛監看的API。

再回到 nanoprofiler 儀錶板觀看。

點進去可以觀看細部內容。

這樣就可以簡單地了解自己API瓶頸在哪,思考如何改善了。

參考連結