The Build Doctor graced us with his presence again some time ago and brought his camera to film one of our team members – the big monitor that shows you the status of all our builds! Since we used to use CruiseControl, we jokingly named this our CruiseMissile, and the name has stuck even though we’ve switched (happily, mostly) to Hudson. You can see its cinematic debut if you like that sort of thing.
The Doctor had good suggestions, as always. One of our big problems with our CI grid is the sheer size of the artifacts it pushes around. We want to put these artifacts on a diet, but until we get to do that we find ourselves goofing off while we wait for a zip, and then a copy, and then an unzip, over and over.
Julian says we should consider some clever hardware and software solutions like RAMDisks, TMPFS, or a solid-state disk. When using any of these solutions, we could pass the location of the file as the artifact and never copy it at all. We may also find that uncompressed transmission is faster than compressing, since all the traffic is local.
We aren’t actually sure whether this is the bottleneck now, since we went to a new version of Hudson that copies in a slightly less silly way. One problem is that you can’t add timestamps to the Hudson console (I feel a plugin coming on) so we can’t easily see which bits actually take the longest. The Build Doctor reminds us that at least for the Ant part of our build, we could use the nifty Performance Monitoring task in ant-contrib to measure the time for each task.