views:

4337

answers:

13

It is slow to load anything other than a small project. It is slow to quit; it can sometimes take minutes. It can be slow to open new files. The record macro feature used to be useful. It is now so slow to start up it's almost always quicker to do it manually!


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 Hyperthreaded, 2GB RAM. Running Outlook, Perforce, IE7, directory browsers. Usually have 1-3 instances of VS running. It's much slower than VC6, say. It seems to take a long time to load projects and close down. I'm interested in if people know reasons why this happens, because of the way VS is written. Is it using .net internally and GC slows it down?

A: 

This is a purely subjective thing I am afraid.

  • May it is because of your low end system configuration.
  • May be VS trying to get updates from the net?
  • May be you are running too many application in the background.
  • May be you are trying to open a huge solution.
Niyaz
I've got to disagree. Install vs2003 side by side with vs2005 - vs2003 is much faster opening the same source. It's tons faster just scrolling around in a source file.
sean e
+1  A: 

it might be that you have a plugin that is misbehaving. Try the safemode switch to see if this improves performance

Mark Harris
+1  A: 

I tend to agree that VS is a heavyweight. Back in the day I coded in DOS using Boxer text editor and makefiles. Boxer didn't have the heavy intellisense and refactoring features, but it did better in the text editing department, had good syntax highlighting and startup/closing were instantaneous, even on a 486. ...those were the days.

I would say it would be really nice to customize VS to remove all the overhead you're never going to use anyway, but I don't see that happening.

spoulson
+4  A: 

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 (or whatever you call it). But developers at Microsoft have not been deaf to the complaints and some outgoing folks there have come up with some workarounds that have helped me and might help you:

Check out this link to get a better understanding of Intellisense:

Intellisense Info

Then check out this link for some macros that I've had a lot of success with:

Intellisense Macros

With those macros, you can turn off intellisense (without renaming any DLLs), restart it, delete the ncb file (which you can do manually, but this is a convenience) and it can give you the status of Intellisense.

Karim
A: 

here's ya problem:

3.2GHz P4 Hyperthreaded, 2GB RAM

Hypertheaded means "doesn't actually have two CPU's, but it fakes it". If you have a process with just one thread running, then you get bad performance. It was a good short-term measure, but compared to having two REAL CPU's, it's a slow hack.

2GB of RAM would be an issue too, based on what you said you run. If you have a basic 5400RPM disk, then it's going to make it all worse.

I'd recommend, based on what you posted:

  • A good core2 machine, maybe a quad if you have the budget.
  • 3GB of ram if you are running a 32bit OS, 4+GB if you are running x64. 4GB means you waste 1GB under 32bit.
  • Get 7200RPM disks, or better. If you can, RAID0 them (stripe) or RAID0+1 (stripe+mirror) if you can get 4 drives (stripe == split content over the two disks, so you can read from both at the same time. stripe+mirror == the safe version of striping, so your code is on TWO disks at all times)

I have a 2.0ghz Core2 (so roughly 3-4x the performance of your P4, if you count 2 CPU's(cores) to be 2x) with 2GB, and the most I can run well is 2 instances of VS.NET 2008. This is normal - nothing wrong with VS.NET, it's just a huge app.

More RAM. More CPU. More Screen. More. More. More :)

Nic Wise
He's comparing VS 2005 and VS 6 on THE SAME MACHINE. The speed has nothing to do with why VS 2005 is slower than VS 6.
Andrew Bainbridge
A: 

Recently I've had both Visual Studio 2008 and Visual Studio 2005 on my machine, and I agree that VS2005 is really heavy. They improved upon it in VS2008, although I'm not sure if you'll consider the performance improvements enough.

Jon Limjap
VS2008 does have some performance gains, but an even larger reason to switch is for the updated languages (which don't require moving off of Framework 2.0).
STW
A: 

here's ya problem:

3.2GHz P4 Hyperthreaded, 2GB RAM

Hypertheaded means "doesn't actually have two CPU's, but it fakes it". If you have a process with just one thread running, then you get bad performance. It was a good short-term measure, but compared to having two REAL CPU's, it's a slow hack.

I don't think that's the problem at all. The machine is plenty high spec enough to be professional C++ development machine for large projects. I can run Eclipse (which is Java, which is memory hungry and slower than native code) and this is still way faster than VS 2005.

I doubled the amount of RAM from 1GB to 2GB. This helps a lot with linking large applications. We also use Incredibuild to accelerate compilation. But it's the VS app that is slow.

And if you think I'm a grumpy anti-MS zealot, ask yourself why people aren't buying Vista! :)

Nick
+2  A: 

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 [...]

I agree. I use Visual Assist. It is much better. There is no real way to turn "Intellisense" off either. The only way I have found is to rename the DLL so when you restart VS it is not found. This works and makes VS faster.

Nick
I agree with this. I do the same. The DLL is <VS root path>\VC\vcpackages\feacp.dll
MartinP
A: 

Could you maybe time some operations and post them so we get an idea what you mean by "slow"? On my machine, I wouldn't call VS 2005 slow, but if you compare it to notepad or my web browser it seems slow. Here's some things that might help people figure out what's going on:

  • Turn off any features that could affect load time. This includes uninstalling all add-ons and making sure that VS isn't configured to automatically open a project.
  • Reboot your machine.
  • Time how long it starts VS 2005 to start, from the time you click the icon until the program starts.
  • Create a program that you're willing to post here that seems to compile slowly (this might not be possible depending on what it takes to make a slow compile); post the program and how long it takes your computer to build it.
  • Do you know anyone else with the same kind of machine that has VS 2005 installed? Does it seem slower or faster than yours?

I believe Lord Kelvin said the best thing that can be said about situations like this:

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.

Until you give us some measurements to look at, we can't tell you if your machine is genuinely slow or if you are expecting more out of your machine than it can give. Your HT CPU might be the problem; I have roughly equivalent machines at work and at home, but my dual-core work machine runs circles around my single-core home machine when it comes to running VS.

OwenP
+1  A: 

I'm am seeing mixed results with faster machines. Sure, faster machine, hides the poor performance quality of vs2005 but not all.

Simply taking your obligatory "hello world" C/C++ program, just compile it, (CL /c helloword.cpp),

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

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

I see 1 seconds compiler under Vc6 and a 6 seconds compile under VS2005.

Using DEPENDS to profile the two, I see 3 areas where the 5 seconds delays and time different are taking place:

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

Again, this is just a compile, not a link. The VC8+ compiler executables/dlls are referencing sub-systems like crypto API, the Registry for some transparent reason and it is adding a tremendous amount of overhead to straight and pure compiles.

While a faster machine may hide some of hide slow down, one could only wonder if Microsoft can optimize the compiler by offering options that disables unnecessary overhead references. I understand the better compiler comes with some overhead, but what I see is a 300-500% compile time degradation - thats awful.

Hector Santos, CTO Santronics Software

A: 

I have the same feeling. It's not as slow for me as Mihai Limbasan describes it, but especially the change from vc6 to any version after is a huge slowdown. I have no idea why. When I used 2003, I though they might have rewritten the whole application in .net.

After all VS basically is a text editor. Why can I nowadays see the ide redraw itself when it's only about text editing of maybe a few mb of text data?

marc40000
A: 

VS 2005 is slower than VS 6 because it is less well optimized for speed. The developers of VS 6 had slower machines than the developers of VS 2005. They made it fast "enough" back then. On a modern machine VS is now "pleasantly fast", where VS 2005 is only just fast enough.

What annoys me is that they decided to scrap VS 6 and start again for VS 2005, when VS 6 was an awesome piece of software that just needed updating.

Andrew Bainbridge
A: 

I noticed above you mentioned you are using perforcet too. Do projects load faster when not in perforce, I am willing to bet that some of the delay you are seeing is related to perforce during load. The latest version of perforce seems a lot slower too.

Steve Sheldon
That's a fair point. I think that is some of the reason, but even you don't have source control bindings, and lots of projects it still seems to be very slow compared to other packages, e.g. Xcode.
Nick
It also got a lot slower when I moved to the 2009.2 client. Clearly they never tested their source control integration on a solution with more than a few projects. Add resharper on top and it can be frustrating. The best solution I have found is to get up, launch VS, got eat breakfast and have a coffee before I start coding... Then hope VS doesn't crash during the day or start telling me I can't copy/paste ;)
Steve Sheldon