Many cores are good but a fast hard disk is good too
Developing the code analyzer PVS-Studio we consider the task of increasing the tool's performance. Such solutions are quite slow, so the programmer who possesses even a powerful computer sometimes gets bored while waiting for the analysis to be completed. PVS-Studio analyzer employs the abilities of multi-core processors and it allows you to increase the speed of analysis of a project in several times in comparison to single-core systems. However, it turned out that the disk subsystem may also impact the analysis speed.
We have a base of regression tests of about 30 applications (more than 90 projects) - these are the source codes that are tested by the analyzer PVS-Studio in automatic mode. The testing of all these codes by the analyzer's version for Visual Studio 2008 takes about two hours. We use a machine with the following characteristics: two-core processor, 4 Gbytes of memory and SATA RAID-system (RAID 0). This computer has also an old IDE hard disk installed that has not been used in any way but there has been no occasion to remove it.
Once, due to some reason, the tests were moved from SATA RAID to IDE. After that, it took us a long time to understand why the tests now executed four hours instead of two! The point is that the tests had been moved at the same time we had made some serious changes in the product and it seemed to us that it was these changes that caused such a great performance drop. But we recalled soon that we had switched to a second hard disk and the problem found its solution.
In what way does a hard disk relate to the code analyzer? In the most direct one. When the analyzer is working the preprocessed files of all the source codes are created and the analyzer works with them then. We counted the size of the preprocessed files in our tests for Visual Studio 2008 and it appeared to be about 7 Gbytes. Of course reading/writing of such a size on an old IDE disk causes a crucial performance drop.
The conclusion is simple: when performing compilation, and all the more when working with code analyzers, keep the source codes on a fast SATA disk, or, even better, use a RAID array. And work will become much more pleasant.