Build speed and SSDs

Started by
6 comments, last by Spodi 14 years, 9 months ago
I was wondering if anybody had done a bit of research concerning how much faster a good quality SSD (such as the Intel X-25M) would be for the purpose of building very large scale projects, compared to something like a 7200RPM hard drive. I work on a project that on a good day takes about 30 mins to build. A big portion of that is from compiling msi files, and I have to rinse and repeat maybe 10 times every day, which leads to a humongous overhead. Thus I'm considering investing in a 80GB X-25M to see if that saves me a few hours every day. Any thoughts?
Advertisement
I don't have quantitative numbers, but I can say that it's much faster.

Though I'm not sure of the compilation model for MSI files. It works well for C++ where the compiler is constantly reading and writing many smallish files. If MSI compilation is mostly CPU-bound, then you might not see much difference. I suggest you take a look at Task Manager and just see whether there's lots of CPU usage going on while the MSIs are being compiled.

Also, if MSI-building is what's taking the most time, I'd have to question the value of recompiling your MSIs all the time. Unless you're actually working on the installation for your application, can't you just build the executable and copy them manually into a "deploy" folder and run it from there? Do you have to build the MSI every time?
Getting your employer to buy you fast, cool, silent hardware NEEDS no technical justification. :-)
Quote:Original post by Codeka
I don't have quantitative numbers, but I can say that it's much faster.

Though I'm not sure of the compilation model for MSI files. It works well for C++ where the compiler is constantly reading and writing many smallish files. If MSI compilation is mostly CPU-bound, then you might not see much difference. I suggest you take a look at Task Manager and just see whether there's lots of CPU usage going on while the MSIs are being compiled.

Also, if MSI-building is what's taking the most time, I'd have to question the value of recompiling your MSIs all the time. Unless you're actually working on the installation for your application, can't you just build the executable and copy them manually into a "deploy" folder and run it from there? Do you have to build the MSI every time?


You raise valid points when you question the need for rebuilding the MSI, and I appreciate the feedback :)
Quote:Original post by ScottMayo
Getting your employer to buy you fast, cool, silent hardware NEEDS no technical justification. :-)


I don't think I have enough leverage with my superiors to have that demand go through, I might have already tried once in the past :)

I believe I'll have to purchase one myself just so I get a bit of an edge over everybody else's ridiculous build times.
Depending on the size of builds, RAM drive might be better and cheaper choice. For example, 8 gigs of ram cost about 30% of what x-25 is.

And since building is inherently about transient data, scratching on SSD might not be the best idea. It depends on the nature of work and size of builds.

Important data stays obviously stays on disk.


For example, for testing installations and some types of builds, I use a VM. The VM base installation is located in compressed file on disk. For testing, it gets copied onto RAM drive (~2-3 gig base install, compressed to about 30% on disk), the rest then happens inside a VM, which runs virtual hard drive entirely off ram-drive.

No scratching, no waiting, and once the test is done, simply wipe it, and start again.
At my previous place of employment we had over 142 visual studio projects in a given solution with about 500,000+ lines of code that gets executed. On that particular machine it took about 8 minutes to build from 30+. The machine was a Quad Core Xeon 2.66, 4GB RAM, 73GB 15k SAS drives.

Short Version
Buy a multi-core CPU and fast hard drives. I wouldn't bother with SSDs.

Long Version
If you are building for a Windows bassed environment using Visual Studio there are several things that will speed up the process.

A multi-core CPU. Visual Studio will take advantage of a multi-cpu compture quite well. There are a few caveats that I can go into if you'd like. But just stay within the Visual Studio environment and you "should" be able to take advantage of this right away.

RAM. Kind of obvious yeah?

Fast hard drives. For your situation I think the SSDs will not be a good investment. I'm not quite sold that the technology is up to snuff for day to day development. I would suggest getting a one or more 10k RPM sata drives for aroudn 179 a pop. Newegg has some.

Good project setup. You can really speed things up by using pre-compiled headers, not writing to the same .pdb file for every single project. Having a well organized project where your objects, binaries, libs, etc...all have a home vs. the default directory. For example a typical multi platform project looks like (hopefully my spacing won't get munched, I'm being lazy)

...this stuff got munched...I'll re-edit the post later sorry....

I think you get the point. But what I'm doing here is preventing collisions of objects, all my pdbs are seperate for each target, etc...thus enabling "faster" compilation as have seen. We applied about about half of those changes to my previous employers project and we dropped from 30 minute builds to 8 or so minutes. Here at my current employer I've done some of the similar things and we went from 40 minute builds to just over 20'ish. So far its working for me.

Take it for what it is worth. Constructive comments welcome...good luck!
WHAT you are building is a huge factor. There is a good chance you can fit everything you need into RAM. At that point, its just a matter of your compiler utilizing all that RAM.

I personally got an i-RAM just for my programming, but even with my code files, VS2008 and MySQL all on it, all of the major build time reductions have come from either partial builds (no point building EVERYTHING when I am only testing a few parts), or from optimizing my build process.
NetGore - Open source multiplayer RPG engine

This topic is closed to new replies.

Advertisement