我们有一个超过200个项目和数千个文件的庞大解决方案。尽管如此,该解决方案在Visual Studio 2010和2012中加载速度通常很快。然而,在将整个SVN存储库复制到另一个位置后,加载和关闭该解决方案突然变得非常慢。(这里指的是30-60分钟!)
我们有一个超过200个项目和数千个文件的庞大解决方案。尽管如此,该解决方案在Visual Studio 2010和2012中加载速度通常很快。然而,在将整个SVN存储库复制到另一个位置后,加载和关闭该解决方案突然变得非常慢。(这里指的是30-60分钟!)
我找到了解决方案并想在这里分享,希望可以节省某些人数小时的研究和盯着“正在准备解决方案…”对话框的时间。
当使用Process Monitor检查devenv.exe进程时,我发现它忙于访问.svn
目录。以下是我所做的(这种方法解决了问题):
*.suo
文件。 它位于与解决方案本身相同的文件夹中。 注意: 您将失去解决方案的几个设置,例如当前打开的文件、断点、书签、当前解决方案配置和平台(例如Debug x86)等。我不知道这些步骤中哪些实际上解决了问题。可能并不需要所有这些步骤,但我不想重现问题以找出可以省略哪些步骤 :)
这些都没对我有帮助,我的解决方法是……我使用了sysinternals的ProcMon工具,过滤devenv,并发现了很多fussionlog的记录。几周前我启用了fussionlog来进行调试,但没有想到要禁用它。我只需要禁用fussionlog,就可以更快地打开解决方案。
您可以在安全模式下打开Visual Studio,然后在打开项目后检查插件和源代码控制设置。
安全模式是指“启动Visual Studio,仅加载默认环境和服务。”
如何操作:
devenv /SafeMode
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" /SafeMode
来源:https://msdn.microsoft.com/en-us/library/ms241278.aspx
在IT技术中,"锁定"是一种机制,它允许多个进程或线程同时读取一个共享资源,但只有一个进程或线程可以写入该资源。这种机制确保了对共享资源的并发访问不会导致数据损坏或不一致。
在SQL Server中,有两种类型的锁定:共享锁和排他锁。共享锁允许多个事务同时读取同一资源,而排他锁则只允许一个事务进行写操作。在实际应用中,需要根据业务需求选择适当的锁定级别以确保数据的完整性和一致性。
除了锁定机制外,SQL Server还提供了其他的并发控制机制,如事务隔离级别和行版本控制。这些机制可以帮助开发人员更好地管理数据库并避免潜在的并发问题。
顺便说一下,我知道这是一个晚点的回答,但我发现简单地删除我的大量断点可以解决过长的加载时间和编译时间。这个操作将.suo文件的大小从214MB减少到977KB。让VS自己处理.suo文件。对于包含35个项目的解决方案,编译和加载现在只需要不到1分钟,而不是5-10分钟。Visual Studio 2012 Pro,更新4。
其他答案对我都不起作用。CI编译时间很好,但在Visual Studio中加载我的解决方案要花费近两分钟的时间。VS会正常运行,直到下次关闭和打开解决方案。不同版本的VS都显示出了相同的问题,安全模式和删除suo都没有帮助。
最终,我按照http://geekswithblogs.net/akraus1/archive/2014/04/30/156156.aspx的建议使用Windows性能记录器来检测VS并找到问题。通过查看Windows性能分析器中的“CPU使用情况(采样)”部分并添加“堆栈(帧标记)”列,我能够深入了解devenv.exe
的使用情况。
结果,按照计数排序的热路径中,Microsoft.VisualStudio.Platform.WindowManagement.ni.dll
有23个调用,然后最终是Microsoft.VisualStudio.ServerExplorer.dll
和Microsoft.VisualStudio.Data.Package.dll
。这提示我在UI中查看服务器资源管理器并打开数据连接选项卡。在那里,我发现了数百个错误添加的连接,这些连接来自调试web.config
的ConnectionString部分。从web.config
中删除这些连接将该项目的负载从90秒多减少到几乎瞬间。
我发现项目加载速度缓慢的原因不同。
我的情况是使用Git,发现即使切换分支,项目加载速度也比应该慢。
解决方案:以管理员身份运行Visual Studio
原因:公司笔记本电脑存在某些问题,无法提供所需的Git工具访问权限(它无法识别正在使用的git存储库)。
我没有看到任何与Git或个人访问任何项目文件或Git对象有关的问题。
我尝试了上述方法,但它没有解决我的问题。
以下是我解决这个问题的方法,希望对你们中的一些人也有效:
使用Visual Studio 2015,我最终创建了一个新解决方案,添加了现有的项目。
从gehho的答案中删除*.suo在过去是有帮助的,但在我的情况下并没有帮助。解决方案根目录下还有一个隐藏的.vs文件夹中的另一个.suo文件。
这里还有其他关于Visual Studio 2015的答案Visual Studio 2015运行极慢
*.suo
文件。 - SausageFingers