为什么Visual Studio 2005这么慢?

时间:2008-09-04 11:34:10

标签: visual-studio visual-c++ visual-studio-2005

加载除小项目以外的任何东西都很慢。戒烟很慢;它有时可能需要几分钟。打开新文件可能会很慢。记录宏功能曾经很有用。它现在启动速度很慢,手动操作几乎总是更快!


  

更多信息会有所帮助。你的解决方案有多大?你在什么平台上。你在运行什么第三方插件?你的电脑上还有什么?

3.2GHz P4超线程,2GB RAM。运行Outlook,Perforce,IE7,目录浏览器。通常有1-3个VS运行实例。比起VC6要慢得多。加载项目并关闭似乎需要很长时间。我很感兴趣,如果人们知道为什么会发生这种情况,因为VS的编写方式。是否在内部使用.net并且GC降低了它?

13 个答案:

答案 0 :(得分:4)

Visual Studio 2005缓慢的最大罪魁祸首之一是Intellisense。这已经一次又一次地在MSDN论坛上提出。我经常遇到的是,Intellisense几乎不间断地“重新索引”符号(或者你称之为的任何符号)。但微软的开发人员并没有对这些投诉充耳不闻,一些外向的人提出了一些帮助我并可能对你有所帮助的解决方法:

查看此链接以更好地了解Intellisense:

  

Intellisense Info

然后查看这个链接,了解一些我已经取得了很大成功的宏:

  

Intellisense Macros

使用这些宏,您可以关闭intellisense(不重命名任何DLL),重新启动它,删除ncb文件(您可以手动执行,但这是一种方便),它可以为您提供Intellisense的状态。 / p>

答案 1 :(得分:2)

可能是你有一个行为不端的插件。尝试使用safemode开关查看是否可以提高性能

答案 2 :(得分:2)

  

Visual Studio 2005缓慢的最大罪魁祸首之一是Intellisense。这已经一次又一次地在MSDN论坛上提出。我经常遇到的是Intellisense几乎不间断地“重新索引”符号[...]

我同意。我使用Visual Assist。它好多了。没有真正的方法可以关闭“智能感知”。我找到的唯一方法是重命名DLL,以便在重新启动VS时找不到它。这样可以使VS更快。

答案 3 :(得分:1)

我倾向于同意VS是一个重量级人物。回到那天,我使用Boxer文本编辑器和makefile在DOS中编码。拳击手没有重型智能感知和重构功能,但它在文本编辑部门做得更好,语法突出显示很好,启动/关闭是即时的,即使是在486.这些都是日子。

我会说自定义VS以删除你永远不会使用的所有开销真的很好,但是我没有看到这种情况发生。

答案 4 :(得分:1)

  

这是你的问题:

     
    

3.2GHz P4超线程,2GB RAM

  
     

Hypertheaded意味着“实际上没有两个CPU,但它会伪造它”。如果你的进程只有一个线程在运行,那么你会得到糟糕的性能。这是一个很好的短期措施,但与拥有两个REAL CPU相比,它是一个缓慢的黑客。

我认为这根本不是问题。该机器具有足够的高规格,足以成为大型项目的专业C ++开发机器。我可以运行Eclipse(这是Java,这是一个内存饥饿,比本机代码慢),这仍然比VS 2005快。

我将内存量从1GB增加到2GB。这对链接大型应用程序有很大帮助。我们还使用Incredibuild来加速编译。但这是VS应用程序很慢。

如果你认为我是一个脾气暴躁的反MS狂热者,问问自己为什么人们不买Vista! :)

答案 5 :(得分:1)

我看到机器速度越来越快。当然,更快的机器,隐藏了vs2005的糟糕性能质量,但不是全部。

只需要你的强制性“hello world”C / C ++程序,只需编译它,(CL / c helloword.cpp),

#include <stdio.h>
#include <windows.h>

int main(char argc, char *argv[])
{
   printf("Hello World\n");
   return 0;
}

我看到Vc6下的1秒编译器和VS2005下的6秒编译。

使用DEPENDS对两者进行分析,我看到3个区域延迟5秒,时间不同:

  ~2.5 secs with ADVAPI32.DLL, CryptGetHashParam()
  ~1.5 secs with OLE2.DLL, StringFromGUID2()
  ~1.0 secs with C2.DLL, _AbortCompilerPass()  

同样,这只是一个编译,而不是一个链接。 VC8 +编译器可执行文件/ dll引用了像crypto API这样的子系统,这是一个透明的原因,它为直接编译和纯编译增加了大量的开销。

虽然更快的机器可能会隐藏一些隐藏速度减慢,但人们只能怀疑微软是否可以通过提供禁用不必要的开销引用的选项来优化编译器。我理解更好的编译器会带来一些开销,但我看到的是300-500%的编译时间降级 - 这太糟糕了。

Hector Santos,首席技术官 Santronics软件

答案 6 :(得分:0)

恐怕这是一种纯粹主观的事情。

  • 可能是因为您的低端系统配置。
  • 可能是VS试图从网上获取更新?
  • 可能是你在后台运行了太多的应用程序。
  • 可能是你正试图打开一个巨大的解决方案。

答案 7 :(得分:0)

最近我的机器上有Visual Studio 2008和Visual Studio 2005,我同意VS2005非常重。他们在VS2008中改进了它,虽然我不确定你是否会考虑性能改进。

答案 8 :(得分:0)

你可以考虑一些操作并发布它们,这样我们就可以了解“慢”的意思吗?在我的机器上,我不会把VS 2005称为慢,但如果将它与记事本或我的网络浏览器进行比较,它似乎很慢。这里有一些可以帮助人们弄清楚发生了什么的事情:

  • 关闭可能影响加载时间的所有功能。这包括卸载所有加载项并确保VS未配置为自动打开项目。
  • 重新启动计算机。
  • 从你点击图标到程序启动的时间,从启动VS 2005开始的时间。
  • 创建一个你愿意在这里发布的程序似乎编译得很慢(这可能不可能取决于进行慢速编译所需的内容);发布程序以及计算机构建它需要多长时间。
  • 您是否知道其他人安装了VS 2005的同类机器?它看起来比你的更慢还是更快?

我相信开尔文勋爵说过关于这样的情况可以说的最好的事情:

  

当你能衡量你所说的话并用数字表达时,你就会对它有所了解;但是当你无法衡量它时,当你无法用数字来表达时,你对它的了解是微不足道的;它可能是知识的开始,但在你的思想中,你几乎没有把它推进到科学的阶段。

在您给我们一些测量值之前,我们无法告诉您,您的机器是否真的很慢,或者您是否期望机器的数量超出其能力。您的HT CPU可能是问题所在;我在工作和家里都有大致相同的机器,但是我的双核工作机器在运行VS时绕着我的单核家用机器运行。

答案 9 :(得分:0)

VS 2005比VS 6慢,因为它对速度的优化程度较低。 VS 6的开发人员的机器比VS 2005的开发人员慢。他们当时的速度很快“足够”。在现代机器上,VS现在“快得多”,VS 2005的速度非常快。

令我恼火的是,他们决定废除VS 6并重新开始VS 2005,当时VS 6是一款非常需要更新的软件。

答案 10 :(得分:0)

我注意到你上面提到你也在使用perforcet。当项目没有进入时,项目的负载会更快,我愿意打赌你看到的一些延迟与负载期间的perforce有关。最新版本的perforce似乎也慢得多。

答案 11 :(得分:0)

在Visual Studio顶部的“任何CPU”选项上更改您的解决方案平台,然后您的程序构建速度肯定会增加。

答案 12 :(得分:-5)

这是你的问题:

  

3.2GHz P4超线程,2GB RAM

Hypertheaded意味着“实际上没有两个CPU,但它会伪造它”。如果你的进程只有一个线程在运行,那么你会得到糟糕的性能。这是一个很好的短期措施,但与拥有两个REAL CPU相比,它是一个缓慢的黑客。

根据您所说的运行情况,2GB的RAM也是一个问题。如果你有一个基本的5400RPM磁盘,那么它将使情况变得更糟。

我建议,根据你发布的内容:

  • 一台好的core2机器,如果你有预算,可能是四核。
  • 如果您运行的是32位操作系统,则为3GB内存;如果您运行的是x64,则为4 + GB。 4GB意味着你在32位下浪费1GB。
  • 获取7200RPM磁盘,或更好。如果可以,RAID0(条带)或RAID0 + 1(条带+镜像),如果你可以获得4个驱动器(条带==分割内容在两个磁盘上,所以你可以同时从两个磁盘读取。条纹+镜像= =条带化的安全版本,因此您的代码始终位于两个磁盘上)

我有一个2.0ghz的Core2(大约是P4的性能的3-4倍,如果算上2个CPU(核心)是2x),2GB,我运行得最好的是2个VS.NET实例这是正常的 - VS.NET没有任何问题,它只是一个巨大的应用程序。

更多内存。更多的CPU。更多屏幕。更多。更多。更多:)