Skip to content

Slow solution load times for massive solutions #4904

@cartermp

Description

@cartermp

This is a continuation and up to date version of #2107.

There are two project systems used, depending on what you target:

  • .NET SDK (Framework or Core or Standard) ---> CPS via the .NET Project system
  • .NET Framework (big project files) ---> Legacy F# project system

The latter is used by most solutions in the wild today, but many people are migrating to the .NET SDK for a number of reasons. Both suffer solution load time woes.

SDK style project behavior

From @saul on SDK projects:

I could see that the projects were moving around/refreshing in the Solution Explorer (some projects had 'Dependencies' nodes, some didn't). After about 5 seconds, the UI completely locked up and 5 minutes later I still can't use it (it's 'Not Responding').

The following are upon testing huge/Dense.sln

Legacy project behavior

From @saul for Legacy projects:

Opening Huge/Dense.sln in VS 2015 Update 3 takes 02:00 minutes to get to a fully working editor. After the "Preparing Solution" progress dialog closes, it's basically ready to use.

In Visual Studio 15.7.1 with the nightly tools - same machine, same solution:

00:36 minutes in, the Solution Explorer appears (and is populated). The 'Preparing Solution' dialog stays open.
08:16 minutes in, the 'Preparing Solution' dialog closes so I can now edit the source files. The UI is semi-responsive, syntax colourisation is not updating.
08:53 minutes in, the colourisation is updating in real-time as you'd expect.

I've got a feeling that we've regressed on the 'compute sources and flags' again, and that we're calling this too often on load again.

This is on an 8 core, 32GB RAM server with SSD - I dread to think what this is like on my dual core laptop.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions