Visual studio 2015 Visual Studio 2015 C重命名速度非常慢

Visual studio 2015 Visual Studio 2015 C重命名速度非常慢,visual-studio-2015,Visual Studio 2015,每当我使用C Edit | Refactor | Rename函数时,应用更改的速度都非常慢,比如30秒或更慢。有时,当发生这种情况时,会出现更新文件弹出窗口 机器上的其他一切都是快速响应的。C++等价物也很好。还有其他人看到这个问题吗?有解决办法吗 编辑: 根据magicandre1981的建议,我进行了ETW追踪。我还将VS调试器的另一个实例附加到我使用的那个实例上,以查看它是否产生了任何有趣的结果 我发现了两件有趣的事情: 减速是指数级的——一开始速度很快,但到第10次使用时需要10秒,到

每当我使用C Edit | Refactor | Rename函数时,应用更改的速度都非常慢,比如30秒或更慢。有时,当发生这种情况时,会出现更新文件弹出窗口

机器上的其他一切都是快速响应的。C++等价物也很好。还有其他人看到这个问题吗?有解决办法吗

编辑:

根据magicandre1981的建议,我进行了ETW追踪。我还将VS调试器的另一个实例附加到我使用的那个实例上,以查看它是否产生了任何有趣的结果

我发现了两件有趣的事情:

减速是指数级的——一开始速度很快,但到第10次使用时需要10秒,到第20次时需要一分钟或更长时间

委托内引发异常。Remove方法。特别是在System.MulticastDelegate.RemoveImpl中。所以我猜有些东西被连接起来,然后再也没有被移除

基本上,此调用堆栈被命中数千次:

mscorlib.dll!System.MulticastDelegate.DeleteFromInvocationListobject[]invocationList={object[4096]},int invocationCount=3569,int deleteIndex,int deleteCount=1 mscorlib.dll!System.MulticastDelegate.RemoveImplSystem.Delegate值 mscorlib.dll!System.Delegate.RemoveSystem.Delegate源,System.Delegate值 Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Editor.Implementation.InlineName.InlineNameSession.OpenTextBufferManager.SpanShanged.removeSystem.Action值={Method={System.Reflection.RuntimeMethodInfo}

ETW跟踪和简单地使用调试器闯入都会命中此调用堆栈

所以。。。更多信息,但我还不知道为什么

另一编辑:


aa我只是做了我应该做的第一件事:禁用扩展,看看它是否有什么不同。果然,性能问题消失了。我将其缩小到一个特定的扩展-我将与作者联系,看看他们是否能解决它。

捕获该问题的ETW竞赛。从Windows 10 SDK安装Windows性能工具包,运行WPRUI.exe选择CPU、磁盘、VirtualAlloc并在scenario.Net下运行。开始跟踪,进行重命名,找到后,转到WPRUI,停止跟踪,现在转到存储EL文件的fodler。压缩ETL+ngenpdb文件夹!!!放入一个zip/RAR,以导出大量大小,然后将zip上传到OneDrive,并在此处发布链接。@magicandre1981谢谢-这很有帮助。原因是哪个扩展?。我安装了窃听器。请参阅第页的答案