We have a build machine running in our development department, which we've set up to build continuously throughout the working day. What this does is:
Given the above, what sort of impact would adding different hardware have on improving the time it takes to do the above?
For example - I was thinking about using an SSD for the harddisk as compiling involves a lot of random disk access.
The subversion server is currently a virtual machine - would switching it to be a physical machine help the slow checkout?
What impact would upgrading from a Core 2 Duo processor to an i7 make?
Any other suggestions on speeding up the above?
An SSD will allow Windows to boot several times faster, and programs to start in a fraction of the time. And since it has no moving parts, it usually lasts for longer than your average hard disk drive. Adding an SSD can even make a bigger difference than upgrading to a computer with a faster processor.
Processor performance can be affected by clock speed, cache size and the number of cores the processor has.
One trick that might speed up the SVN checkout process could be to have a working copy on the build machine, update the working copy and do a svn export from the working copy to the build directory. This should reduce the load on the SVN server and reduce network traffic.
Another trick to reduce the first 5 minutes of cleaning could be to move the old build dir to a temp folder on the same disk and then use another background task to delete the old build dir when the main build completes (could be a nightly cleanup task).
I think you've made good suggestions yourself. Definitely add a faster hard-drive (SSD or otherwise) and upgrade the CPU as well. I think your code repository (Subversion) should definitely be on a physical machine, ideally separate from your build machine. I think you'll notice a big difference after upgrading the hardware. Also, make sure the machine doesn't have any other large tasks running at the same time as the build tasks (e.g. virus scanning) so that the build tasks aren't slowed down.
How is your build machine setup to execute its tasks? Are you using continuous integration software? Is the machine itself a server or just a regular desktop machine?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With