VS 2017 - 调试时非常慢(滞后)
VS 2017 - Very slow (laggy) when debugging
当我调试我的解决方案时,vs 2017 非常滞后和缓慢,就像它必须在后台运行一些繁重的东西。
所以它每隔5秒就停止"responding",持续2秒,这很烦人。
有什么建议吗?
编辑(尝试过的建议):
- 浏览器 Link 已关闭
- 停止客户反馈
经过一些额外的调查,我发现了这个 thread
在工具 → 选项 → 调试 → 常规中取消选中 调试时启用诊断工具 成功了!
取消选中 为 ASP.NET 启用 JavaScript 调试
工具 → 选项 → 调试 → 常规
在性能上有很大的不同。
如果禁用诊断工具无法解决问题,请尝试禁用 IntelliTrace,
在工具 -> 选项 -> IntelliTrace 中取消选中启用 IntelliTrace。
为我工作。
我放弃了 Debug=>Attach To Process 工作...甚至 tried ALL the solutions on this SO post (2 页价值).
解决方案
使用ReAttach VS IDE Extension。如果这是您最近附加到的进程,这将绕过再次使用 附加到进程 对话框的需要。
如果您使用的是 VS 2017 企业版,请尝试禁用 IntelliTrace 功能
(工具 -> 选项 -> IntelliTrace)
关闭此功能后,即使保持诊断工具打开(工具 -> 选项 -> 调试 -> 调试时启用诊断工具),延迟行为也会消失
我自己尝试禁用一些东西,只是为了看看是什么原因造成的。唯一对我有用的是工具 > 选项 > 调试 > 常规 > "Enable JavaScript debugging for ASP.NET (Chrome and IE)"。
我正在为 Asp.net WebForms 使用 VS2017 Enterprise v15.2。
隐藏线程 window 对我有用。
我遇到了同样的问题。在调试模式下,我的 webforms 项目 运行 非常慢。使用 Ctrl+ F5 时,它 运行 很快(就像部署时一样)。我发现一个 try/catch 块执行了 45 次。它什么也没做,它只是在捕获我犯的一个错误。我修复了错误,并且在删除 try-catch 块时 - 瞧! -- 回到全速。
因此,如果您遇到此问题并且已经尝试了上述所有解决方案(我已经尝试过),请寻找经常触发的 try catch 块。 [修复你的错误 :) ] 然后删除 try-catch 块。我不敢相信它带来的不同。当然,根本不应该有任何区别,因为 try-catch 块没有做任何事情,但它确实做了。
我在选中 "Enable Javascript debugging for ASP.NET (Chrome and IE)" 时也遇到了延迟。并且关闭 "Enable Diagnostic Tools while debugging" 没有帮助。
但是,我也注意到,当我 F12 进入 Chrome 开发者工具时,滞后时间消失,应用程序开始运行。
希望这对您有所帮助。
有时是因为防病毒软件中的实时扫描。
"为您的杀毒软件添加例外" Visual Studio files/folders
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe
C:\Program Files (x86)\Microsoft Visual Studio\201
只有一件事对我有帮助,那就是禁用 Resharper 的调试器选项。
如果您使用 Resharper,请尝试在菜单中取消选中 “在编辑器中显示局部变量值”:Resharper -> 选项 ->工具 -> 调试器.
对我有帮助。
对我有用的是删除解决方案目录中的以下所有文件夹:
.vs
x64
Debug
Release
我使用的解决方法是在启动调试器之前在本地使用管理模式 运行 msvcmon.exe。然后启动attach window 并提供远程调试端口。
我遇到了这个问题,如果从 visual studio 开始,程序会 运行 变慢,结果是线程太多,就像循环中的很多新 System.Threading.Thread()等。我将代码切换为使用 ThreadPool 而不是 Task 等,然后速度变慢了。
选择 "Load only specified modules" 成功了(工具=>选项=>调试=>符号)
我也遇到了这个问题,因为我帮助禁用了工具→选项→调试→常规中的启用编辑并继续选项。
在我的例子中,我遇到了一个从未满足条件的断点。我完全忘记了这个断点。有时在断点上加一个简单的条件,会减慢很多调试速度。
只是添加这个以防它可能对某人有帮助。
当我调试我的解决方案时,vs 2017 非常滞后和缓慢,就像它必须在后台运行一些繁重的东西。
所以它每隔5秒就停止"responding",持续2秒,这很烦人。 有什么建议吗?
编辑(尝试过的建议):
- 浏览器 Link 已关闭
- 停止客户反馈
经过一些额外的调查,我发现了这个 thread 在工具 → 选项 → 调试 → 常规中取消选中 调试时启用诊断工具 成功了!
取消选中 为 ASP.NET 启用 JavaScript 调试
工具 → 选项 → 调试 → 常规
在性能上有很大的不同。
如果禁用诊断工具无法解决问题,请尝试禁用 IntelliTrace, 在工具 -> 选项 -> IntelliTrace 中取消选中启用 IntelliTrace。 为我工作。
我放弃了 Debug=>Attach To Process 工作...甚至 tried ALL the solutions on this SO post (2 页价值).
解决方案
使用ReAttach VS IDE Extension。如果这是您最近附加到的进程,这将绕过再次使用 附加到进程 对话框的需要。
如果您使用的是 VS 2017 企业版,请尝试禁用 IntelliTrace 功能 (工具 -> 选项 -> IntelliTrace)
关闭此功能后,即使保持诊断工具打开(工具 -> 选项 -> 调试 -> 调试时启用诊断工具),延迟行为也会消失
我自己尝试禁用一些东西,只是为了看看是什么原因造成的。唯一对我有用的是工具 > 选项 > 调试 > 常规 > "Enable JavaScript debugging for ASP.NET (Chrome and IE)"。
我正在为 Asp.net WebForms 使用 VS2017 Enterprise v15.2。
隐藏线程 window 对我有用。
我遇到了同样的问题。在调试模式下,我的 webforms 项目 运行 非常慢。使用 Ctrl+ F5 时,它 运行 很快(就像部署时一样)。我发现一个 try/catch 块执行了 45 次。它什么也没做,它只是在捕获我犯的一个错误。我修复了错误,并且在删除 try-catch 块时 - 瞧! -- 回到全速。
因此,如果您遇到此问题并且已经尝试了上述所有解决方案(我已经尝试过),请寻找经常触发的 try catch 块。 [修复你的错误 :) ] 然后删除 try-catch 块。我不敢相信它带来的不同。当然,根本不应该有任何区别,因为 try-catch 块没有做任何事情,但它确实做了。
我在选中 "Enable Javascript debugging for ASP.NET (Chrome and IE)" 时也遇到了延迟。并且关闭 "Enable Diagnostic Tools while debugging" 没有帮助。
但是,我也注意到,当我 F12 进入 Chrome 开发者工具时,滞后时间消失,应用程序开始运行。
希望这对您有所帮助。
有时是因为防病毒软件中的实时扫描。
"为您的杀毒软件添加例外" Visual Studio files/folders
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe
C:\Program Files (x86)\Microsoft Visual Studio\201
只有一件事对我有帮助,那就是禁用 Resharper 的调试器选项。 如果您使用 Resharper,请尝试在菜单中取消选中 “在编辑器中显示局部变量值”:Resharper -> 选项 ->工具 -> 调试器.
对我有帮助。
对我有用的是删除解决方案目录中的以下所有文件夹:
.vs
x64
Debug
Release
我使用的解决方法是在启动调试器之前在本地使用管理模式 运行 msvcmon.exe。然后启动attach window 并提供远程调试端口。
我遇到了这个问题,如果从 visual studio 开始,程序会 运行 变慢,结果是线程太多,就像循环中的很多新 System.Threading.Thread()等。我将代码切换为使用 ThreadPool 而不是 Task 等,然后速度变慢了。
选择 "Load only specified modules" 成功了(工具=>选项=>调试=>符号)
我也遇到了这个问题,因为我帮助禁用了工具→选项→调试→常规中的启用编辑并继续选项。
在我的例子中,我遇到了一个从未满足条件的断点。我完全忘记了这个断点。有时在断点上加一个简单的条件,会减慢很多调试速度。
只是添加这个以防它可能对某人有帮助。