-
Notifications
You must be signed in to change notification settings - Fork 268
MEF Performance Improvement #14027
Copy link
Copy link
Open
Labels
Functionality:VisualStudioUIPackage Manager UI et alPackage Manager UI et alPriority:3Issues under consideration. With enough upvotes, will be reconsidered to be added to the backlog.Issues under consideration. With enough upvotes, will be reconsidered to be added to the backlog.Product:VS.ClientTenet:PerformancePerformance issuesPerformance issuesType:DCRDesign Change RequestDesign Change Request
Metadata
Metadata
Assignees
Labels
Functionality:VisualStudioUIPackage Manager UI et alPackage Manager UI et alPriority:3Issues under consideration. With enough upvotes, will be reconsidered to be added to the backlog.Issues under consideration. With enough upvotes, will be reconsidered to be added to the backlog.Product:VS.ClientTenet:PerformancePerformance issuesPerformance issuesType:DCRDesign Change RequestDesign Change Request
Type
Fields
Give feedbackNo fields configured for issues without a type.
NuGet Product(s) Affected
Visual Studio Package Management UI
Current Behavior
Currently when opening the PM UI NuGet loads MEF objects which can cause a significant delay in displaying the window.
Desired Behavior
When users go to open the PM UI we should immediately open the window and give a loading indication while the view is initialized.
Additional Context
NuGetPackage creates the PackageManagerControl before the window is created, for example PackageManagerControl.CreateAsync is called and we wait until after it's completed to create the window.
InitializeAsync, which is called by CreateAsync, attempts to load 5 MEF components. Which can cause a significant delay if this is the first time we attempt to load MEF components in the VS session. There are additional async calls in the method which can delay how long the component takes to load. If those calls are made on the UI thread, VS will hang while it waits for the calls to complete.
NuGet/NuGet.Client#6190 (comment)