为什么Visual Studio 2005这么慢?

时间:2020-03-05 18:47:33  来源:igfitidea点击:

除了小型项目之外,加载其他任何东西都很慢。退出很慢;有时可能要花几分钟。打开新文件可能很慢。记录宏功能过去很有用。现在启动太慢了,几乎总是可以手动完成!

More info would be helpful. How big are your solutions? What platform are you on. What 3rd party plugins are you running? What else is running on your pc?

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

解决方案

回答

恐怕这纯粹是主观的。

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

回答

可能是插件行为异常。尝试使用安全模式开关,看看这样做是否可以提高性能

回答

我倾向于同意VS是重量级的。回到那天,我使用Boxer文本编辑器和makefile在DOS中进行编码。 Boxer没有笨拙的智能感知和重构功能,但在文本编辑部门中表现更好,语法突出显示功能出色,即使在486上,启动/关闭也可以即时进行。

我想说,自定义VS可以消除我们永远不会使用的所有开销,这真的很好,但是我看不到这种情况。

回答

导致Visual Studio 2005缓慢的最大原因之一是Intellisense。这已经一次又一次地在MSDN论坛上提出。我经常遇到的是,Intellisense几乎不停地工作以"重新索引"符号(或者任何我们称呼的符号)。但是Microsoft的开发人员并未对这些抱怨充耳不闻,那里的一些外向人员提出了一些变通办法,这些变通办法对我有帮助,并可能会为我们提供帮助:

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

Intellisense Info

然后查看此链接,了解一些我成功使用过的宏:

Intellisense Macros

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

回答

这是问题:

3.2GHz P4 Hyperthreaded, 2GB RAM

过高的头表示"实际上没有两个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,则我能很好地运行的是VS.NET 2008的2个实例。正常情况下,VS.NET没错,这只是一个巨大的应用程序。

更多RAM。更多的CPU。更多屏幕。更多的。更多的。更多的 :)

回答

最近,我在计算机上同时安装了Visual Studio 2008和Visual Studio 2005,并且我同意VS2005确实很重。他们在VS2008中对此进行了改进,尽管我不确定我们是否会认为性能改进足够。

回答

here's ya problem:
  
  
    3.2GHz P4 Hyperthreaded, 2GB RAM

过高的头表示"实际上没有两个CPU,但它是伪造的"。如果我们有一个仅运行一个线程的进程,则性能会很差。这是一个很好的短期措施,但是与拥有两个REAL CPU相比,这是一个缓慢的破解。

我认为这根本不是问题。该机器具有足够高的规格,足以成为大型项目的专业C ++开发机器。我可以运行Eclipse(这是Java,它比传统代码慢得多的内存,并且需要大量内存),但它仍然比VS 2005快得多。

我将RAM的容量从1GB翻了一倍,达到2GB。这对链接大型应用程序有很大帮助。我们还使用Incredibuild来加快编译速度。但这是VS应用程序运行缓慢。

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

回答

One of the biggest culprits for Visual Studio 2005 slowness is Intellisense. This has been brought up on the MSDN forums again and again and again. What I frequently experience is that Intellisense is working nearly non-stop to "re-index" symbols [...]

我同意。我使用Visual Assist。好多了。也没有真正的方法可以关闭" Intellisense"。我发现的唯一方法是重命名DLL,因此当我们重新启动VS时,找不到它。这可以使VS更快地工作。

回答

我们能否安排一些操作时间并发布它们,以便我们了解"慢"的含义?在我的机器上,我不会将VS 2005称为慢速,但是如果将其与记事本或者Web浏览器进行比较,它似乎很慢。以下是一些可以帮助人们弄清楚发生了什么的事情:

  • 关闭任何可能影响加载时间的功能。这包括卸载所有加载项,并确保未将VS配置为自动打开项目。
  • 重新启动计算机。
  • 从单击图标到程序启动的时间,即VS 2005启动的时间。
  • 创建一个我们愿意在此处发布的程序,该程序似乎编译缓慢(这可能无法实现,具体取决于进行缓慢编译所需的时间);发布该程序以及计算机需要多长时间来构建它。
  • 我们是否认识其他安装了VS 2005的同类计算机的人?它看起来比慢还是快?

我相信开尔文勋爵(Lord Kelvin)说过关于这种情况的最好的说法:

When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge of it is of a meager and unsatisfactory kind; it may be the beginning of knowledge, but you have scarcely, in your thoughts, advanced it to the stage of science.

在我们给我们一些测量结果之前,我们无法告诉我们机器是否真的很慢,或者我们是否期望机器超出其承受能力。HT CPU可能是问题;我在工作和在家中都拥有相当的机器,但是在运行VS时,我的双核工作机在单核家庭机上运行。

回答

我发现使用更快的机器的结果好坏参半。当然,更快的机器掩盖了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引用了诸如加密API,注册表之类的子系统,并且这为直接编译和纯编译增加了大量开销。

虽然一台速度更快的计算机可能会掩盖某些速度,但人们只能怀疑Microsoft是否可以通过提供禁用不必要的开销引用的选项来优化编译器。我知道更好的编译器会带来一些开销,但是我看到的是300-500%的编译时间降级太糟糕了。

赫克托·桑托斯(Hector Santos),首席技术官
Santronics软件

回答

VS 2005比VS 6慢,因为它没有对速度进行很好的优化。 VS 6的开发人员的计算机比VS 2005的开发人员的计算机速度慢。那时,它们使"足够"的速度很快。在现代机器上,VS现在"非常快",而VS 2005仅够快。

令我烦恼的是,他们决定放弃VS 6并重新开始使用VS 2005,当时VS 6是一款很棒的软件,只需要更新。

回答

我在上面注意到我们提到我们也在使用perforcet。在不使用perforce的情况下,项目的加载速度更快吗?我敢打赌,我们看到的某些延迟与加载期间的perforce有关。 perforce的最新版本似乎也慢很多。