After long performance tests I got the best setup here, but for a C++ compiler. You will need:
- SSD for Windows and Program Files (typically the C: drive)
- 1 TB WD Caviar Black in two partitions:
- Drive D: A tiny one (max 35 GB) at the start cylinders having only a TEMP folder; You should map your TMP and TEMP environment variables to D:\TEMP (this one is really important!!!)
- Drive E: with the rest of the drive storage; use this for general data storage, except for the software development stuff
- 1 TB WD Caviar Black in any partition layout you want to store your Visual Studio 2008 projects/solution. Based on Subversion usage I ended up with four partitions:
- 820 GB for trunk and general purpose projects
- 60 GB for a "feature branch"
- 60 GB for a "stable branch" used during product stabilization
- 60 GB for a "product quality branch" used for minor fixes on approved software
- 6-core or 8-core processor, using /MP compiler switch, (don't get confused with Visual Studio 2008 native "parallel project build" feature -- I don't know why the AMD Phenon II processor is working so good with this combination)
- Windows 7 64 bits (I'm not exactly sure why it runs faster in a 64-bit OS, even using a 32-bit compiler)
- SATA 3 compatible mainboard
This setup outperforms any other combination I've tested.
A typical compilation of a huge modular project will have the following results:
- Parallel build without /MP and regular HDDs: around 12:00 minutes
- This proposed setup: 4:30 minutes
- This setup, but using alternating to WD Caviar Green drives: +1:00 per drive (5:30 or 6:30 for both)
- Moving TEMP partition to a RAMDRIVE: 5:30
My conclusions are the following:
- Don't let TEMP folder run in SSD, since they are bad "writers" and don't have a comparable 64 MB cache inside WD Caviar Black
- Using a dedicated drive working as TEMP lets both WD drives work in parallel: the TEMP for cl.exe temp files and the project drive to store *.cpp/h, *.obj, *.lib, *.exe, etc.
- WD Caviar Black caching algorithms are impressive, combined with SATA 6 GB/s, outperforms a RAMDRIVE setup I've tested for the TEMP drive
- Partitioning reduces the impact on fragmentation which is inevitable in a compiler environment; the same is also valid for the TEMP drive
I hope I could help you.