views:

2365

answers:

4

basically i want to know if the visual studio IDE and/or compiler in 2010 was written to make use of a multi core environment (i understand we can target multi core environments in 08 and 10, but that is not my question).

i am trying to decide on if i should get a higher clock dual core or a lower clock quad core, as i want to try and figure out which processor will give me the absolute best possible experience with Visual Studio 2010 (ide and background compiler).

if they are running the most important section (background compiler and other ide tasks) in one core, then the core will get cut off quicker if running a quad core, esp if background compiler is the heaviest task, i would imagine this would b e difficult to seperate in more then one process, so even if it uses multi cores you might still be better off with going for a higher clock cpu if the majority of the processing is still bound to occur in one core (ie the most significant part of the VS environment).

i am a vb programmer, they've made great performance improvements in beta 2, congrats, but i would love to be able to use VS seamlessly... anyone have any ideas?

thanks,

erx

+8  A: 

MSBuild supports building projects in parallel. Visual Studio 2008 takes advantage of multiple processors to compile projects.

Mehrdad Afshari
thanks for this input, i think mainly enterprise developers and multi-project developers should pay attention to this, if you are reading.
Erx_VB.NExT.Coder
+6  A: 

I think you're probably better off with a higher-clock dual core. I think VS (and most apps today) do not yet take great advantages of multi-threading. VS may have dozens of threads running, but only a subset of operations really take advantage of them well I think. A whole lot of the VS implementation is C++ COM components that run on the STA thread, so the UI thread does the bulk of the work in many scenarios. The fact that many pieces of the VS shell are being rewritten in managed code as part of VS2010 will help break a lot more of these ancient component STA dependencies. As others have mentioned, some key scenarios (like building a large solution) already do take advantage of multiple cores (MSBuild works well in parallel), so if those dominate what you care about, then more cores is better. But for things like IDE UI usage and background compilation, I think most of these are still mostly single-threaded. I've a quad-core box at work, and I rarely see VS2008 use more than 25% of my CPU resources. (I've not used VS2010 enough in earnest to know which scenarios are better, though I know at least a few are better.)

Brian
thank you brian, that was a perfect clarification of the isses i've had in mind, between the 2.0ghz quad-core and the 2.93ghz dual-core i believe that the 2.93ghz dual-core is probably the best way to go (if others were also wondering, based on current laptop available cpu components) mainly because vs as with many other apps are unlikely to be perfectly (or close to perfectly) parallelized. - thanks again
Erx_VB.NExT.Coder
I think in VS 2010 it's a very close run thing, it's certainly more threaded than before. And if you have set ms build correctly it will build projects in parallel. Most people have several projects in their solution that have dependencies on each other in some way.Combine that with the fact you are running an OS, email client, web browser... probably all the time 4 cores makes sense to me. Don't think multiple threads for one program think multiple apps.
PeteT
thanks for this input pete, its definitely something to think about, i wonder what the vs dev team have to say about this?
Erx_VB.NExT.Coder
+3  A: 

As other people have noted, MSVS 2010 does indeed use multiple processes for compilation. Although, it does not automatically converts into heavily reduced compilation time. I have just made a test with a middle sized C++ project (around 200 files). It built faster on Dual Core at 3.4 Ghz than Quad Core at 2.8Ghz. Although Dual Core processor is cheaper. (Systems are practically identical with 4GiB DDR2 Ram each). I must note also, that during compilation Dual Core processor was loaded to 70% max. As you can see, if VS2010 can not fully load even 2 cores, what is the point of having 4 or more?

iggy
thanks for this note, i've voted you up :) esp given that you're a new user.
Erx_VB.NExT.Coder
+1 ^^ Same reason
Basiclife