Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI delay when opening RoslynDev hive with Roslyn.sln open #2652

Closed
rchande opened this issue Jul 24, 2017 · 5 comments
Closed

UI delay when opening RoslynDev hive with Roslyn.sln open #2652

rchande opened this issue Jul 24, 2017 · 5 comments

Comments

@rchande
Copy link

rchande commented Jul 24, 2017

Check out and build the Roslyn master branch.
Open Roslyn.sln in the Dev15 main hive and wait for the project to finish opening.
Start a new instance of VS in the RoslynDev hive devenv /rootsuffix RoslynDev.
Open a C# project in the new VS instance.

For some reason, doing this causes the VS with Roslyn open to hang. It looks like opening a project in the other hive is triggering the project system to reload Roslyn.sln in the main hive. Note that I don't see this if both instances are running in the same hive.

I see lots of blocked time in:

Name
--
\|                                         + microsoft.visualstudio.projectsystem!Microsoft.VisualStudio.ProjectSystem.TaskDelayScheduler+<ThrottleAsync>d__24.MoveNext()
\|                                          + microsoft.visualstudio.projectsystem.vs.implementation!Microsoft.VisualStudio.ProjectSystem.VS.Implementation.ProjectReloadManager.<ScheduleProjectReload>b__43_0(value class System.Threading.CancellationToken)
\|                                           + mscorlib!AsyncTaskMethodBuilder.Start
\|                                            + microsoft.visualstudio.projectsystem.vs.implementation!Microsoft.VisualStudio.ProjectSystem.VS.Implementation.ProjectReloadManager+<<ScheduleProjectReload>b__43_0>d.MoveNext()
\|                                             + microsoft.visualstudio.projectsystem.implementation!ProjectMultiThreadedService.ExecuteSynchronously
\|                                              + microsoft.visualstudio.threading.ni!JoinableTask.CompleteOnCurrentThread
\|                                               + microsoft.visualstudio.threading.ni!JoinableTaskFactory.WaitSynchronously
\|                                               \|+ microsoft.visualstudio.threading.ni!JoinableTaskFactory.WaitSynchronouslyCore
@srivatsn
Copy link
Contributor

Is the project being opened in the RoslynDev hive part of Roslyn.sln? The project reloader should only be called if any of the csprojs in Roslyn.sln change - if you let this happen do you see any changes to any csproj in roslyn.sln?

/cc @jviau

@rchande
Copy link
Author

rchande commented Jul 24, 2017

It's a totally unrelated project.

@jviau
Copy link
Contributor

jviau commented Jul 25, 2017

Is opening the unrelated project causing a change to a .targets or .props file shared by a project in Roslyn.sln?

@davkean
Copy link
Member

davkean commented Aug 31, 2017

@rchande I believe I understand this - this is the compiler extension generating a new targets file in AppData. We're reloading based on it, we have another bugs that are tracking the performance of this reloading but I'll move this over to Roslyn.

@davkean
Copy link
Member

davkean commented Aug 31, 2017

This issue was moved to dotnet/roslyn#21838

@davkean davkean closed this as completed Aug 31, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants