ter*_*ory 10 visual-studio-2015
任何时候我使用C#编辑|重构|重命名功能,应用更改都非常慢 - 比如30秒或更慢.有时在发生这种情况时会出现"更新文件"弹出窗口.
机器上的其他所有东西都快速响应.C++等价物也很好.还有其他人看到这个问题吗?有解决方案吗
编辑:
根据magicandre1981的建议,我运行了一个ETW跟踪.我还将VS调试器的另一个实例附加到我正在使用的实例上,以查看是否有任何有趣的东西.
我发现了两件有趣的事情:
减速是指数级的 - 最初它是快速的,但是你使用它的第10次它需要10秒,到第20次花费一分钟或更长时间.
在Delegate.Remove方法中抛出异常.(特别是在System.MulticastDelegate.RemoveImpl中.)所以我猜是有些东西被连接起来然后从未删除过.
基本上这个调用堆栈被击中了数千次:
mscorlib.dll!System.MulticastDelegate.DeleteFromInvocationList(object[] invocationList = {object[4096]}, int invocationCount = 3569, int deleteIndex, int deleteCount = 1)
mscorlib.dll!System.MulticastDelegate.RemoveImpl(System.Delegate value)
mscorlib.dll!System.Delegate.Remove(System.Delegate source, System.Delegate value)
Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Editor.Implementation.InlineRename.InlineRenameSession.OpenTextBufferManager.SpansChanged.remove(System.Action value = {Method = {System.Reflection.RuntimeMethodInfo}})
ETW跟踪和简单地使用调试器进入该调用堆栈.
所以...更多信息,但我还没弄明白为什么.
另一个编辑:
Aaand我刚刚做了我应该做的事情:禁用扩展程序以查看它是否有任何区别.果然性能问题就消失了.我将其缩小到特定的扩展名 - 我会联系作者,看看他们是否可以修复它.
| 归档时间: |
|
| 查看次数: |
1276 次 |
| 最近记录: |