Visual Studio 调试/加载非常慢
Posted
技术标签:
【中文标题】Visual Studio 调试/加载非常慢【英文标题】:Visual Studio debugging/loading very slow 【发布时间】:2012-09-16 02:05:26 【问题描述】:我无计可施。 Visual Studio 通常在调试或只是简单地加载(“不调试就开始”)我的 ASP.NET MVC 站点时非常缓慢。并非总是如此:起初,项目会加载得又快又好,但一旦加载缓慢,之后它们总是会加载缓慢。我可能要等 1-2 分钟或更长时间。
我的设置:
我目前正在使用Visual Studio 2012 Express,但我在 Visual Studio 2010 Express 中也遇到了同样的问题。我的解决方案存储在网络驱动器上;具体来说,如果重要的话,它会将我的文档重定向到网络驱动器。 (不应该。有时我的网站在此设置下加载速度非常快。)
我通常在 Internet Explorer 9 中加载,但在 Firefox 中也会出现同样的问题。
这可能发生在我从事的任何 ASP.NET MVC 项目中,而且它似乎围绕着 DisplayTemplates,这是我所有的 ASP.NET MVC 项目所做的。如果这很重要,那就是 C# 和 Razor。
症状:
系统将加载我的符号 数百 次。基本上如下,但至少有 300 行这样的行,每行都有针对相同 CShtml 的略有不同的 DLL 文件:
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.xighmhow.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.cv5hktkf.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.1o77hs8i.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.jja-77mw.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.l_e9ev_s.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.b4n59gom.dll', Symbols loaded.
在上面,我有三个 DisplayTemplate:“Contact”、“Location”和“StatusCode”。每次调用显示模板时,IIS 似乎都会加载符号两次。因此,如果我要显示一个包含 100 个条目的表格,这些条目调用所有这三个显示模板,则加载了 600 个单独的符号。
这也不是一个快速的操作。 IIS 生成的日志文件需要大约 200 毫秒才能加载每个符号。因此,超长延迟。
我的尝试:
Debug 或 Release 版本,没关系。 将我的项目放在 Web 服务器上的完整 IIS 实现上,运行速度非常快,没有任何问题。 Cassini、IIS Express 7.5 和 IIS Express 8.0 都有问题。 删除所有断点不执行任何操作。 清理解决方案,或删除 .suo 也无济于事。 如果我修复 IIS Express,或删除My Docs\IISExpress
文件夹,或修复/重新安装 Visual Studio → 问题可能会消失,但只会持续一段时间,然后才会再次出现。
感谢任何建议。
要回答更多问题,是的,我的机器肯定有马力。令人愤怒的是,同一个项目,没有任何改变,有时可以很快加载,通常是在我修复 IIS Express 并删除 My Docs\IISExpress
文件夹之后。最终,“某事”发生了,再次加载只需 2 分钟。我正在做的不是一个复杂的项目。没有外部库或依赖项,我的 VS.NET 也没有任何附加组件。
值得注意的是,这台机器有 Symantec Endpoint Protection,它有造成严重破坏的历史。但是完全禁用它(最好是管理员)并不能解决问题。
在这一点上我有一个理论。我认为这完全是因为我正在处理网络共享的重定向文件夹。当调试器检查其数百个“加载的符号”行时,我停下来看看它在做什么。它在我的代码中,加载了我拥有的 DisplayTemplate。进入模板输出如下:
Step into: Stepping over non-user code 'System.Threading.WaitHandle.InternalWaitOne'
Step into: Stepping over non-user code 'System.Threading.WaitHandle.WaitOne'
Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated'
Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCapture'
Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch'
Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch'
Step into: Stepping over non-user code 'System.Web.Compilation.AssemblyBuilder.Compile'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.bciuyg14.dll', Symbols loaded.
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.CompileWebFile'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultInternal'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.FileExists'
Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.GetPathFromGeneralName'
Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.FindPartialView'
Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.Find'
Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.FindPartialView'
Step into: Stepping over non-user code 'System.Web.Mvc.Html.TemplateHelpers.ActionCacheViewItem.Execute'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.kwj3uqan.dll', Symbols loaded.
Step into: Stepping over non-user code 'System.RuntimeType.CreateInstanceSlow'
Step into: Stepping over non-user code 'System.Web.Mvc.DependencyResolver.DefaultDependencyResolver.GetService'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerViewEngine.DefaultViewPageActivator.Create'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerCompiledView.Render'
Visual Studio 似乎每次都在重新编译我的显示模板,这又是数百次。我的理论是 Visual Studio 编译文件,将其保存到网络共享,然后以某种方式在其上标记新时间,然后 Visual Studio 认为文件已更改。因此,Visual Studio 再次重新编译它。虽然只是一个理论;我真的不知道。
首先,显然,我打开了离线文件(这是办公室中的台式计算机;我不在乎)。我将禁用、重新启动,然后明天重试。
另外,将我的项目按原样移动到本地 C: 可以修复它。它加载非常快。但这在工作环境中并不理想。我丢失了以前的版本,我的代码根本没有备份,除非我手动复制它,而且它不再与任何人共享。
如果涉及到它,我可以将它从 C 来回复制到网络共享。每次页面加载都要等待两分钟,这更烦人。
【问题讨论】:
我有很多问题:您运行它的机器怎么样?它是否有足够的马力来完成您想要做的事情?有第三方插件吗?你有什么样的杀毒软件? 用更多信息更新了我的问题。 删除离线文件似乎只是解决办法。它工作了一段时间,然后问题又回来了。但我还有另一个可能的答案。更新我的解决方案。 第二个防病毒问题,我在运行 ThreatFire 时遇到了重大问题。暂时关闭它至少可以为我加快数百倍的调试器速度。关闭我的主要 AV (Avast!) 只起到了一点作用。 @JohnSaunders 你试过在管理员模式下运行它吗?:***.com/questions/36322440/… 【参考方案1】:这是我在 Visual Studio 2012 中解决“符号加载缓慢”问题的方法:
转到工具 -> 选项 -> 调试 -> 常规
选中“仅启用我的代码”旁边的复选标记。
转到工具 -> 选项 -> 调试 -> 符号
单击“...”按钮并在本地计算机的某处创建/选择一个新文件夹以存储缓存的符号。我将我的命名为“符号缓存”并将其放入 Documents -> Visual Studio 2012。
单击“加载所有符号”并等待从 Microsoft 的服务器下载符号,这可能需要一段时间。 请注意,加载所有符号按钮仅在调试时可用。
取消选中“Microsoft 符号服务器”旁边的复选标记,以防止 Visual Studio 远程查询 Microsoft 服务器。
点击“确定”。
从现在开始,符号加载应该更快。
请注意,如果您对 Microsoft 程序集进行任何更改/下载,您可能需要返回“符号”对话框并再次“加载所有符号”。
【讨论】:
恐怕我没有办法解决。对于那些围绕 Microsoft 符号问题的人来说,这将是一个很好的解决方案。对我来说不幸的是,我的问题似乎围绕着我自己的符号。这些符号已经在本地缓存,并且出于某种原因,仅在一个页面加载中就编译了数百个图块。 感谢这个提示我在这里遇到的一个问题是加载所有符号按钮对我来说是禁用的有什么想法吗? @ChrisMcGrath 试试这个链接social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/…。顺便说一句,感谢您的出色回答 即使按照您的步骤操作,“加载所有符号”按钮仍处于隐藏状态,我无法单击该按钮。我现在该怎么办?我正在使用 VS Express 2012。 这里是那些禁用按钮加载所有符号的解决方案:按钮仅在调试时可用。【参考方案2】:关闭 IntelliTrace 为我解决了这个问题。
在 Visual Studio 中,工具 -> 选项 -> IntelliTrace
然后,取消选中“启用 IntelliTrace”复选框。
【讨论】:
在单步执行我的一个单元测试时遇到了这个问题。 Intellitrace 打开大约需要 300 秒,关闭大约需要 14 秒。这个修复真的对我有用。 将我的启动时间从 25 秒提高到 6 秒。我认为这很有帮助,因为我在应用程序启动时运行了很多自己的代码 该死的......从 1 分钟到 10 秒。在 VS2012 Ultimate 中默认选择它。当心伙计们 在工具 => 选项中找不到 Intellitrace。 .. 我有 vsComunity 2015 在 Visual Studio 2015 中,Intellitrace 仅存在于 VS 2015 企业版中。【参考方案3】:这些都不适合我,但我在已删除的符号上找到了断点。似乎 2010 年就这样挂了。要查看这是否是您的问题,请执行 debug->windows->breakpoints 如果其中有任何问题,请删除它们。
Saunders,提到他检查过,但在这个问题的解决方案中没有提到。也许对某些人来说是常识,但不是我们所有人。
【讨论】:
我突然开始在 VS2010 中遇到这个问题,确实是我的断点之一导致了它。当我清除断点后,它又变快了。 哇..VS2012 爬起来了,5 分钟就构建了一个简单的项目。清除了所有的断点,它又快速变亮了,谢谢!! 阅读本文并按照您所说的进行后,我发现一个断点以某种方式放置在我的一个 edmx 实体文件的 XML 代码中。你这个男人/女人。 非常感谢。这解决了我的 VS2010 性能非常慢的问题。 这也解决了我在 Visual Studio 2015 中遇到的调试缓慢问题。【参考方案4】:我删除了“Temporary ASP.NET Files”文件夹,我的本地主机页面加载得到了显着改善。这是路径... %temp%\Temporary ASP.NET Files\
【讨论】:
C:\Users\USER_NAME\AppData\Local\Temp 是路径,“AppData”文件夹是隐藏文件夹 我在这里发现了 1GB 的旧垃圾......把它全部删除,VS 运行得更好一些。 :)【参考方案5】:你启用了FusionLog吗?
我的 VisualStudio 在开始调试时启动、打开解决方案和加载符号非常慢。只在我的机器上很慢,在其他机器上没有。
FusionLog 将大量日志内容写入磁盘。就我而言,只需在 RegEdit 上禁用它就可以解决所有问题。
这是注册表中的 FusionLog 键:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion
检查 ForceLog 值(1 启用,0 禁用)。
【讨论】:
嗯...非常好的答案。我在同一条船上。我很久以前也启用了FusionLog
,但忘了禁用它。现在调试ASP.NET MVC
应用程序要快得多。感谢上帝和@rkawano。 :)
找不到“ForceLog”键 - 猜它在 Win10 中消失了?
@ChristopherD.Emerson 如果你没有看到这个密钥,你肯定没有启用 fusionlog。【参考方案6】:
我遇到了同样的问题,并尝试了上述大多数解决方案。简单地删除缓存和临时文件最终对我有用。
尝试删除这两个文件夹的内容:
C:\Users\\UserName\AppData\Local\Microsoft\WebsiteCache
和
C:\Users\\UserName\AppData\Local\Temp
(尤其是 iisexpress 和 Temporary ASP.NET Files 文件夹)。
这可以设置为在登录到 Windows 时自动发生,方法是向 C:\Users\\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
文件夹添加一个 cmd 文件,其中包含以下内容:
rmdir C:\Users\\username\AppData\Local\Microsoft\WebsiteCache /s /q
rmdir C:\Users\\username\AppData\Local\Temp /s /q
【讨论】:
这行得通。 “AppData”文件夹为隐藏文件夹,以防万一有人找不到。 就是这个!它运行得非常好,以至于我现在登录到 Windows 时会自动实现它:我已将一个名为 DeleteVisualStudioCache.cmd 的文件添加到 C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\使用以下命令启动: rmdir C:\Users\username\AppData\Local\Microsoft\WebsiteCache /s /q rmdir C:\Users\username\AppData\Local\Temp /s /q pause【参考方案7】:我想我至少可以知道原因了,虽然不是原因。当问题再次出现时,我注意到大量“conhost.exe”进程成为孤立进程。我会关闭 Visual Studio,它们会保持打开状态。结束每个人的任务最终可靠地解决了问题。 [希望]
(请注意,conhost.exe 不是 Visual Studio 进程,尽管 Visual Studio 使用它。因此,那里的其他用户可能有其他运行 conhost.exe 的应用程序。我知道我的机器不是为什么我可以安全地结束除 YMMV 之外的所有任务。)
为什么会这样?当我一次打开多个项目时似乎会发生这种情况,我倾向于经常这样做,即使我在任何时候只构建和调试其中一个。
编辑 #1 - 不幸的是,这不是“灵丹妙药”。它并不总是对我有用。通常,当事情变得缓慢时,我会关闭所有 Visual Studio 会话,然后进入任务管理器并结束它的任何实例,conhost.exe、iisexpress.exe Microsoft.VisualStudio.Web.Host.exe 和 MSBuild.exe我能找到。
通常,在那之后,当我重新启动我的项目时,它会快速加载。但并非总是如此。
真的,我认为最好的做法可能是不要从重定向的文件夹/网络共享中构建和调试代码。
Edit #2 - 两年后,这仍然在 Visual Studio Community 2013 中对我来说是一个问题,但我似乎至少找到了罪魁祸首任务:Explorer.exe 。是啊,谁知道。在我结束该任务的那一刻,bam,页面加载在一秒钟内。
如果我有一个 Windows 资源管理器文件浏览器打开到我重定向的网络驱动器(这通常是因为这是我的代码所在的位置),则似乎会发生此问题。关闭窗口是不够的,我必须杀死整个 Explorer.exe 任务。我只能猜测它在做什么......文件句柄发疯了?
我通常可以使用任务管理器来启动一个新的 explorer.exe 任务(我只能使用这么多的 alt-tabbing),Visual Studio 将继续快速加载。但如果我再次打开 Windows 资源管理器,它几乎总是会回到超级慢动作。
因此,如果您有重定向的网络共享,请试一试。这肯定比在本地工作要好。
【讨论】:
我知道这是一个有点旧的消息,但我遇到了同样的问题。我的团队建议我使用构建脚本,将文件从本地源复制到运行文件的位置,每次我单独运行该子例程时,它都会创建一个 conhost.exe 而不会关闭它。一旦我结束了所有额外的副本,它就会再次以闪电般的速度运行。【参考方案8】:以上都是不错的解决方案,我都试过了,但是得到了here的解决方案,就是
Debug -> Delete All Breakpoints
【讨论】:
【参考方案9】:对我来说,它是 IE 9.08.8112.16241。当我使用 Firefox 或 Chrome 时,使用 F10 或 F11 进行调试时不会出现缓慢的调试。不知道IE有什么问题,但是我现在正式鄙视用它来测试。
更新:我已关闭所有 IE 程序加载项,它已恢复全速。一次打开它们显示 LastPass(在我的情况下)是罪魁祸首。我想我毕竟不能怪 MS。
未来几年... 如果您使用 Brave,则可以轻松访问您的扩展程序,并在调试时一次(或多次)关闭它们。
brave://extensions
只需单击切换滑块。请注意,除了 DuckDuckGo 隐私必需品之外,我的所有内容都已开启。它们没有被删除,只是暂时禁用。
【讨论】:
这也解决了我的问题。在尝试调试时,我得到了完整的系统锁定,尤其是在使用 QuickWatch 窗口时。 LastPass 工具栏需要被禁用。 (IE 10.0.9200.16635) 这就是我喜欢 *** 的原因。但 LastPass 应该解决这个问题 - 我现在正在给他们发电子邮件让他们知道。 VS2013和IE 11显然仍然存在问题。禁用LastPass并恢复正常。感谢 UserBlueOne 提供的信息 - 可以继续工作了。 FREAKEN LASTPASS!在 VS 2012 中使用我的 MVC 应用程序进行调试时,我的键盘完全塞满了。禁用 LastPass,一切又飞起来了。谢谢!赞成。 在带有 IE 的 Win8.x 中,如果您使用 MS 帐户登录,您可以让它同步您的登录信息,因此无需使用 LastPass,但仍然(部分)有好处,:) 这……对我有用。请注意,现在是 2019 年——六年后——我正在使用带有 Microsoft Edge 的 LastPass 插件。【参考方案10】:对我来说,我实现了this tip,通过在web.config
的编译标签中添加以下两个属性,基本上大大提高了性能
<compilation ... batch="false" optimizeCompilations="true"> ... </compilation>
batch="false"
是做什么的?
它通过只编译那些页面使预编译更具选择性 已更改,需要重新编译
optimizeCompilations
到底在做什么? Source
ASP.NET 使用每个应用程序的哈希码,其中包括一个状态 事物的数量,包括
bin
和App_Code
文件夹,以及global.asax
。每当 ASP.NET 应用程序域启动时,它都会检查这是否 哈希码与之前计算的有所不同。如果有, 然后是整个codegen
文件夹(编译和影子复制的地方 大会现场)被消灭了。开启此优化后(通过
optimizeCompilations="true"
),哈希不再考虑bin
、App_Code
和global.asax
。因此,如果这些改变我们不会 清除codegen
文件夹。
参考:Compilation element on MSDN
【讨论】:
感谢您的发帖。这实际上比公认的答案更能提高我的表现。 @Ber'Zophus 你能试试这个并与我们分享你的结果吗? 编译进入 system.web 确认可以在大型解决方案和 Web 应用程序 (MVC) 中工作。【参考方案11】:我在调试时也遇到了执行性能问题,我尝试了很多调试器选项。在我的情况下,当我更改此选项时获得了巨大的性能:
工具-选项-调试-输出窗口-(常规输出设置-所有调试输出)-关闭
【讨论】:
【参考方案12】:启用“本机代码”调试器时,我遇到了 Visual Studio 调试缓慢的问题。尝试禁用它。
在“Visual Studio 2012”上转到:
-
项目属性->
网络 ->
调试器(页面底部)。 ->
禁用除 ASP.NET 之外的所有内容
希望对你有帮助。
类似问题:1、2
【讨论】:
不幸的是,我的已经设置了,所以对我来说没有修复。但可能是其他人尝试的好建议。 为我修好了!【参考方案13】:在我的例子中,它是带有 VS 2012 的 .NET Reflector Visual Studio Extension(版本 8.3.0.93)。每次 Step Over (F10) 的调试需要 10 秒。
在 Visual Studio 中,转到工具/扩展和更新...并禁用 .NET Reflector Visual Studio 扩展。不要忘记重新启动 Visual Studio。
【讨论】:
我发现这也导致了我的问题。只有在禁用扩展程序后,我才查看是否有其他人注意到它。【参考方案14】:在我的情况下是
Tools/Options/Debugging/General/Enable javascript debugging for ASP.NET (Chrome and IE)
取消选中后,我的调试开始时间从 45-60 秒缩短到 0-5 秒。
【讨论】:
这个是最快的【参考方案15】:有一次,停电后,每次遇到断点或抛出异常时,我都不得不面对同样的缓慢问题。
我模糊地记得“suo”文件(与“sln”解决方案文件位于同一目录中)可能已损坏并使一切变慢。
我删除了我的“suo”文件,一切正常。 .suo 文件删除是无害的,仅意味着重新创建我的 windows 布局以及启动项目和一些其他非关键自定义。
【讨论】:
我刚刚意识到我在停电后也变得很慢,非常感谢这个答案。 在更高版本的 Visual Studio 中查找.vs
文件夹。删除那个。【参考方案16】:
我也遇到了这个问题,以下是我执行的步骤,它总是对我有用:
正在删除解决方案的 .suo 文件。 删除临时 ASP.NET 文件 (您可以在 %WINDOW%\Microsoft.NET\Framework\\Temporary ASP.NET Files 中找到它) 删除应用程序中的所有断点。【讨论】:
重新启动使其花费的时间比正常时间长 5 倍,而不是比正常时间长 10 倍。删除 .suo 文件使其几乎立即启动。谢谢! 似乎删除 .suo 文件有效。有什么理由删除这些文件有助于提高性能。? @SharpCoder .suo 包含很多信息,例如当前在 IDE 中打开了哪些文件、调试器信息、本地设置等。当这些文件损坏时,vs 开始消耗更多的 CPU 使用率在某些情况下会导致 VS 变慢甚至挂起。【参考方案17】:我不知道您是否仍然遇到此问题,但我通过将调试器附加到进程本身来调试 Visual Studio 中的站点,而不是让 VS 为我做这件事,我发现它可以大大缩短时间。我为 VS 使用了一个名为 AttachTo 的扩展,并且我有一篇关于如何使用它的小文章 here。
我希望这会有所帮助。
【讨论】:
【参考方案18】:通过禁用浏览器链接
解决了我的慢速 VS 问题【讨论】:
我知道“谢谢”cmets 在这里有点不悦,但说真的,非常感谢。这一变化使我正在测试的程序从缓慢到无法使用到基本上即时反应的程度。你可能每天给我带来大约一两个小时的工作效率,只是因为不必等待加载 @thnkwthprtls 不客气 - 您需要注意的那些 MS 默认设置之一 :) 没必要禁用,看我的回答=> ***.com/a/34979659/2736742 非常感谢!我现在可以更好地工作 muuuuuuch,正如巴西人所说:'你就是那个人'!【参考方案19】:如果有人注意到此行为来自左侧字段,请检查以确保您没有在 web.config 中设置任何断点。我一定是用鼠标点击设置了一个,它确实减慢了所有调试操作。
【讨论】:
我自己也有同样的事情。差点把我逼疯了。为什么 web.config 文件中的非活动断点会完全破坏调试?【参考方案20】:在花费一整天等待符号以与海龟速度一样慢的速度加载之后,在所有可能的组合之间混合和切换:Just My Code, Caching symbols、Intellitrace、Just-In-Time、killing processes 等。
我的解决方案实际上是禁用防病毒软件。是的,Windows Defender 正在减慢我的项目启动速度!它会在 Visual Studio 请求时检查所有 dll,并减慢整个符号加载过程。
我不得不说我们的机器具有很好的规格,可以非常快速地编译解决方案,所以这从来都不是问题。我们在 VS 2013 Ultimate 中编写代码。
【讨论】:
是的,关闭 Windows Defender 就像一个魅力!要在 Windows 10 中永久关闭 Windows Defender,请在 RegEdit 路径 HKLM\System\CurrentContolSet\Services\WinDefend 中设置 Start="4"(4 表示禁用) 遇到 AVG 防病毒软件的问题。有没有人想出一个特定的文件夹是否可以从防病毒软件中排除来解决问题,拜托?我已经缓存了符号,并排除了符号缓存文件夹 - 但这没有任何区别。 您可以保留 AV 并从分析中排除某些路径和目标(VS 和您的项目)【参考方案21】:清空符号缓存对我有用。
参见:菜单栏/工具/选项/调试/符号/空符号缓存
【讨论】:
【参考方案22】:在 Visual Studio 中:
工具 -> 选项 -> 调试 -> 符号
选择“仅指定模块”。单击“指定模块”链接,然后添加一个空白模块(单击新文档按钮并单击确定)。
【讨论】:
【参考方案23】:清除缓存等使用选项
1
&2
;设置/疑难解答选项3
和4
,尽情享受吧!
选项1:导航到 IIS express,清除缓存和站点
运行此cd "C:\Program Files (x86)\IIS Express\"
appcmd.exe list site /xml | appcmd delete site /in
运行此Del /S /F /Q %temp%
- 以清除 Userprofile Temp 文件夹。
运行此Del /S /F /Q %Windir%\Temp
另外,清除您在%temp%
中的临时文件并注销,或重新启动
这将清除 Windows 临时文件夹。这将删除所有网站,尽情享受吧!
选项 2:删除/重新创建临时文件夹
Cmd>rmdir C:\Users\\username\AppData\Local\Microsoft\WebsiteCache /s /q
Cmd> rmdir C:\Users\\username\AppData\Local\Temp /s /q
选项3:JMC(只是我的代码)选项from MSDN
要在 Visual Studio 中启用或禁用 Just My Code,under Tools > Options (or Debug > Options) > Debugging > General, select or deselect Enable Just My Code
。
选项4:配置Visual Studio/禁用常见插件问题
更多Visual Studio settings 您还可以配置 Visual Studio 并在环境中禁用资源杀死功能,不记得我从哪里得到的,但我很快就会发布更多。
环境 -> 常规
取消选中“根据客户端自动调整视觉体验 性能” 取消选中“启用丰富的客户端视觉体验”检查 “如果可用,请使用硬件图形加速” 环境 -> 自动恢复 取消选中“每次保存自动恢复信息” 环境 -> 文件 选中“当数据无法保存在代码页中时,将文档另存为 Unicode” 环境 -> 键盘 将“ForceGC”设置为 ctrl+num1 将“ReSharper_Toggle”设置为 ctrl+num0(如果使用了 ReSharper) 将“ReSharper_EnableDaemon”设置为 ctrl+num8(如果使用了 ReSharper) 环境 -> 启动 将“启动时”设置为“启动时显示空环境” 取消选中“每次下载内容” 环境 -> 同步设置 取消选中“登录 Visual Studio 时跨设备同步设置”【讨论】:
谢谢,这行得通。还为我解决了 localhost ssl 问题。【参考方案24】:由于未知的 VS 扩展替换了默认的即时调试器,Asp.net 核心调试非常缓慢。
我在 OPTIONS\DEBUGGING\Just-In-Time 配置选项卡中发现了这样的消息(作为警告文本)。 另一个调试器已将自己注册为即时调试器。要进行修复,请启用即时调试或运行 Visual Studio 修复。
描述:https://msdn.microsoft.com/en-us/library/ssc8234s.aspx?f=255&MSPPError=-2147217396
返回默认的 JIT 调试器(刚刚选中的未选中的托管选项)解决了我所有的问题。
【讨论】:
在 VS2019 社区中为我修复了它(即多年后!) - 非常感谢。有谁知道另一个调试器如何注册自己?这是远程调试的结果吗?【参考方案25】:在我的例子中,我注意到禁用我的互联网连接会使其运行速度与使用 ctrl-f5 一样快,所以我去调试->选项->符号并取消选中所有 .pdb 位置。
似乎每次启动调试会话时 VS 都会尝试连接到这些服务器。
请注意,禁用 Debug->Options->Debugging->General “启用源代码支持”或“要求源文件与原始版本完全匹配”不会有任何区别。
【讨论】:
+1。我不会推荐它。在这里查看它的含义:***.com/questions/8174800/…【参考方案26】:类似的问题浪费了我大半天的时间!
由于我的问题的解决方案与此处所说的不同,因此我将其发布以对其他人有所帮助。
我的是一个断点。我有一个 "Break at function" 断点(即,我们不是在代码行上按 F9,而是使用断点窗口创建它们),它应该在我的项目外部的库函数中停止。 p>
并且我有 “使用 Intellisense 验证函数名称”已选中。 (信息here。)
这比地狱慢(项目启动从 2 秒到 5 分钟)。
删除断点解决了它。
【讨论】:
【参考方案27】:在完成上述所有操作后,对我有用的一件事是: 在 Threads 窗口(Debug->Windows->Threads)中,将 Group by 设置为 None。这只能在调试时完成。
即使在关闭该窗口后也会产生影响。
【讨论】:
【参考方案28】:在Windows资源管理器中打开解决方案文件夹,关闭Visual Studio,从Windows资源管理器中删除.suo文件。
现在在 Visual Studio 中打开项目,希望调试器能够快速附加/分离。
【讨论】:
【参考方案29】:对我来说,这是条件断点。这些似乎真的减慢了速度。
【讨论】:
确实如此。但前提是包含它们的行被实际执行。【参考方案30】:转到您的环境变量并查找键 _NT_SYMBOL_PATH。
删除它。
瞧,工作就像一个魅力。
【讨论】:
value == symsrv*symsrv.dll*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols
还是没有骰子!以上是关于Visual Studio 调试/加载非常慢的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2005 网站管理工具的响应非常慢