Skip to content

Manual allocation performance testing: AnalyzerRunner for DiagnosticAnalyzerService on Roslyn.sln #36114

@sharwell

Description

@sharwell

Version Used: ba24589

Scenario details

This test executes the DiagnosticAnalyzerService with the following configuration:

  • Database persistence is enabled (SQLite at this time)
  • The database does not exist in advance
  • Full solution analysis is disabled for both C# and Visual Basic

Steps to run the test

  1. Delete the %TEMP%\RoslynTests\AnalyzerRunner\temp-db folder (if it exists)

  2. Run AnalyzerRunner in release mode with the following command line (this is the IIncrementalAnalyzer DiagnosticAnalyzerService profile)

    $(OutDir) $(SolutionDir)Roslyn.sln /stats /ia Diagnostic /persist /profileroot $(SolutionDir)artifacts\profileRoot

  3. Start PerfView GC-only profiling during the 5 second delay before project analysis starts

    • Make sure to use a circular buffer large enough to hold the complete result data
    • For 64-bit profiling, PerfView will need to start before AnalyzerRunner starts. The 5-second delay is still helpful as it will show up in the trace as a 5-second period of no allocations.
  4. Stop profiling when the AnalyzerRunner completes

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions