Skip to content

Conversation

@ToddGrun
Copy link
Contributor

  1. Change the ABWQ to hold WorkspaceChangeEventArgs. By doing this, we don't need to calculate the solution/project changes before placing items in the queue.

  2. Ensure _visualStudioWorkspace.GetFilePath is done from a bg thread

Test insertion PR: https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/631967

*** old CPU under ProjectCodeModelFactory ***
image

*** old allocs under ProjectCodeModelFactory ***
image

*** new CPU under ProjectCodeModelFactory ***
image

*** new allocs under ProjectCodeModelFactory ***
image

1) Change the ABWQ to hold WorkspaceChangeEventArgs. By doing this, we don't need to calculate the solution/project changes before placing items in the queue.

2) Ensure _visualStudioWorkspace.GetFilePath is done from a bg thread
@ToddGrun ToddGrun requested a review from a team as a code owner April 29, 2025 15:50
@ghost ghost added Area-IDE untriaged Issues and PRs which have not yet been triaged by a lead labels Apr 29, 2025
var stopwatch = SharedStopwatch.StartNew();
foreach (var documentId in documentIds)
// Fire off the code model events while on the main thread
await FireEventsForChangedDocumentsAsync(projectCodeModelAndFileNames, cancellationToken).ConfigureAwait(false);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: since this method is async, you can move the STMTA into it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually kind of preferred it in the outer method, as that's what's done for the background thread assurance. This way, if more work needs to be done on the main thread, it can just be called from the same section in ProcessNextWorkspaceChangeEventBatchAsync.

}

nextInputCheckElapsedMs = elapsedMs + 1;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i assume this logic was the same as before.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This logic changed, as IsInputPending showed up in the profiles

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area-IDE untriaged Issues and PRs which have not yet been triaged by a lead

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants