If there ever was a subject that caused more unfounded claims and counter-claims, it’s performance benchmarking. Given the dearth of useful info I’ve been able to find about whether SSDs improve compilation time or not, I thought I would put up the numbers that I have found during a small test I did today.
Program to be compiled:
- Java webapp of ~10,000 executable lines of code
- Maven 3
- Java 1.6
- HP Compaq 8100 Elite Convertible Minitower PC
- Intel Core i7
- 6GB ram
- 64-bit Windows 7
- OCZ Vertex SATA SSD 60GB
- Barracuda 7200.12 SATA 3Gb/s 500GB HDD
- Dell Dimension 9200
- Intel Core 2 6300
- 4GB ram
- SATA 260GB HDD
All times are as reported by Maven, not of the entire duration of the shell command.
mvn clean install
So, across the three build runs I performed on each environment, the timings are pleasingly consistent. The good news is that my new PC significantly outperforms my old one. The somewhat surprising news is that the HDD is consistently marginally quicker than the SSD. This suggests that this maven goal is not bound by disk I/O, that it is something else about my new system’s spec that gives such a performance boost. This actually reinforces what Joel Spolsky found when he ran a similar test a couple of years ago, and also one of the golden rules about working on performance - your assumptions will be wrong so measurement is king. Amen.