はじめに
Roslyn Analyzerはコードの品質を保つためには欠かせない存在です。ただ多数のAnalyzerを導入すると、ビルド時間がやたら長かったりと開発者体験を損なってしまう可能性があるのもまた事実です。
今回の記事ではRoslyn Analyzerがビルド時間に与える影響を調べること手法を紹介したいと思います。
調べ方
ログファイルを出力させる
解析ログを出力させるには、MS BuildにReportAnalyzerというプロパティを渡す必要があります。
<!-- 〇〇.csproj --> <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <ReportAnalyzer>true</ReportAnalyzer> ...
後は/binaryLogger(略は/bl)を渡してビルドすることで、msbuild.binlogというファイルを出力できます。このファイルにRoslyn Analyzerでの処理にかかった時間も記録されています。
$ dotnet build /bl
キャッシュが効いているとAnalyzerの計測が正しくできないこともあるので、適宜$ dotnet cleanを実施すると良いと思います。
msbuild.binlogの確認方法
MSBuild Structured Log Viewerを用いることでmsbuild.binlogの中身を調べることができます。
まだインストールしていない人はサイトにアクセスして、インストールを行なってください。

Macの方は以下にインストール手法が記述されています。
msbuild/documentation/wiki/Binary-Log.md at main · dotnet/msbuild · GitHub
Analyzer Summaryを調べる
macの場合はStructuredLogViewer.appを開き、出力されたmsbuild.binlogを読み取ります。

Analyzer Summaryを見ると、どのAnalyzerがどれくらい時間がかかっているかがランキングで並んでいることが確認できます。