VS2008在特定的大型C ++解决方案上非常慢

时间:2010-06-08 10:29:43

标签: c++ performance visual-studio-2008

我有一个包含21个C ++项目和1个VB.NET项目的解决方案。 当我简单地将carret移动到文件中或尝试打开菜单时,IDE的响应速度非常慢。对于每个动作,该过程似乎占用CPU的50%。 只有在我的机器上才能使用此解决方案。

该解决方案共有2380个源文件和头文件,其中1280个是头文件。

我尝试删除与源代码控制(Perforce)的所有连接,但它没有帮助。 此外,我安装了Visual Assist,但即使在删除它(卸载)后,仍然会出现相同的行为。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

停用intellisense。

http://blogs.msdn.com/b/saraford/archive/2007/12/03/did-you-know-how-to-turn-off-intellisense-by-default.aspx

Intellisense解析整个项目并大大减慢IDE的速度。如果你使用Visual Assist,那么你真的不需要它。 Visual Assist占用资源较少,并且在后台扫描,智能感知在解析过程中窃取了太多资源。

这适用于您的情况吗? http://coolthingoftheday.blogspot.com/2008/03/visual-basic-2008-hotfix-to-fix-slow.html

答案 1 :(得分:0)

请注意,禁用Intellisense也可能会破坏类向导之类的东西(至少我很确定它在VS2005中有效)。正如已经建议的那样,定期删除所有临时文件(如.ncb)是一个好主意,因为它们会变得很大并且会降低IDE的速度。 此外,如果您使用的是Visual Assist,请尝试重建数据库,禁用它或安装其他版本。

答案 2 :(得分:0)

我有100多个项目的解决方案,所以我确切地知道你的感受。包含一些托管项目的解决方案尤其糟糕。禁用Intellisense有很大帮助。我从来没有从Visual Assist(或其他类似的重构工具)中看到过这样的问题,并且因为失去Intellisense而填补了许多遗漏的功能。

我还遇到过一些项目,这些项目的代码会导致Intellisense线程无休止地循环并且永远不会完成解析代码。大多数时候,我们永远无法确定导致问题的确切代码。在怀疑列表中,模板和嵌套宏的大量使用通常很高。

确保禁用Intellisense的唯一好方法是创建一个与ncb文件同名的目录。转到解决方案目录,删除ncb,然后创建名为your_solution_name.ncb的目录。因为它无法重新创建ncb文件,所以每次打开解决方案时都会有一个错误框点击,但这是一个很小的代价。

简单地删除ncb意味着VS将再次创建它。我在VS选项中看到的方法将关闭一些功能,但不会阻止它尝试解析所有代码。