Why I don't need Visual Studio 2008 (yet)

· by Steve · Read in about 3 min · (471 Words)

Visual C++ Express 2008 came out while I was away I see, which inevitably was going to draw calls for a VS9 version of our SDKs (I always buy the Pro version of Visual Studio myself, but I keep an Express version for testing too).

I’ve always been pretty relaxed about this particular version though, because unlike many previous versions it holds precious little for the native C++ developer. Sure, you can use Vista native controls, which will undoubtedly be useful for some people, and if you’re a purely Windows-targetting .Net user then of course the new features in that area are no doubt going to get you all excited, but for me I can only think of one feature that I really hankered for: multiprocessor builds for all files rather than just projects.

VS8 (aka 2005) does make use of multiple processors, but only between separate projects. If you have a solution with many projects in it, you can get some parallelism there, but typically you’ve got dependencies between projects which forces serialisation. For me, OgreMain was the bottleneck, but once that was built all the plugins and samples could then fire off separately. It helped, but it wasn’t perfect. VS9 introduces fully parallel builds of files which means every project can take advantage of multiple processors.

It’s a fair amount to pay for an upgrade just for that though, so I’d pretty much accepted that I’d leave the upgrade for a while and just live with it. However, the ever-resourceful Paul (tuan kuranes) linked in the Ogre Forum a plugin called MPCL for Visual Studio 2005, which adds fully parallel builds without upgrading. I installed it, and my build time for the OgreMain project (debug only) on my 2-core Core 2 Duo E6750 (2.66Mhz) dropped from 6 mins 45 sec to 4 mins 29 sec - ie shaving a third off the build time. Not double the performance, but not to be sniffed at either.

So that seals it - I won’t be upgrading to VS9 just yet. Those who use VS9 can (as I suspected) use the VS8 OGRE SDK binaries anyway, because the native compiler really didn’t change that much, in marked contrast to VS8. Of course you can only use the MPCL plugin if you use the Pro version of VS so I guess those using Express will upgrade to 9 fairly swiftly, so that’s their path unless they want to use VS9 OGRE SDKs created by third parties (I see those are already springing up - may host those if they work). Anyone reading the OGRE forums regularly already knew about this of course but I just thought I’d post it here too, because being away for 2 weeks I missed it entirely and only picked up on it because someone updated the thread today.