Olstakh.CodeAnalysisMonitor
1.0.17
dotnet tool install --global Olstakh.CodeAnalysisMonitor --version 1.0.17
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
dotnet tool install --local Olstakh.CodeAnalysisMonitor --version 1.0.17
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Olstakh.CodeAnalysisMonitor&version=1.0.17
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package Olstakh.CodeAnalysisMonitor --version 1.0.17
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Code Analysis Monitor
A .NET tool that monitors Roslyn code analysis events in real-time via ETW. Shows live top-like tables for source generator performance and VBCSCompiler server compilation durations.
Install
dotnet tool install --global Olstakh.CodeAnalysisMonitor
Usage
Requires an elevated (Administrator) terminal — ETW real-time sessions need admin privileges.
Generator Command (default)
ca-monitor
ca-monitor generator
Shows a live table of source generator performance as Visual Studio (or any Roslyn compiler) runs generators. An Exceptions column appears automatically when any generator throws an exception.
Columns
- Generator — fully qualified generator type name
- Invocations — total invocation count
- Avg Duration — average duration per invocation
- P90 Duration — 90th percentile duration
- Total Duration — cumulative time spent (default sort)
- Exceptions — exception count (shown only when > 0 for any generator, highlighted in red)
Compilation Command
ca-monitor compilation
Shows a live table of VBCSCompiler server compilation durations. Events fire during actual builds (not IntelliSense/design-time).
Columns
- Project — project name
- Compilations — total compilation count
- Avg Duration — average compilation duration
- P90 Duration — 90th percentile duration
- Total Duration — cumulative time spent (default sort)
Options
| Option | Default | Description |
|---|---|---|
--top N |
50 | Maximum number of rows to display |
--save-on-exit |
false |
Export collected data to CSV files on exit |
When --save-on-exit is specified, two CSV files are written to the current directory on exit:
- Summary (
generator-summary-<timestamp>.csvorcompilation-summary-<timestamp>.csv) — one row per generator/project with aggregated stats. - Detail (
generator-detail-<timestamp>.csvorcompilation-detail-<timestamp>.csv) — one row per individual event, ordered by timestamp.
Keyboard Controls
| Key | Action |
|---|---|
1–5 (or 1–6 if there was exception in a generator) |
Sort by column (descending). Press again to toggle ascending. |
Ctrl+C |
Exit |
Notes
- Generator data updates when Visual Studio / other IDE triggers design-time builds (on code edits, file saves, solution load) — gaps between updates are normal.
- Compilation events fire only during actual builds (
dotnet build, Build in VS), not during IntelliSense. - The generator table refreshes every 100ms; the compilation table refreshes every 1s.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.