Compiling in ‘turbo’ mode

As almost all of us know, Xailer makes the compile and linking process on a separate execution thread, in order to not freeze the main IDE application so it can handle any incoming message.

On the other hand, since rather long time ago all the computers are equipped with CPUs with two or four cores, that is to say,the equivalent of two or four CPUs working together.

If we join this two facts, is easy to deduce that we can try to use those spare cores to compile few modules simultaneously and gain a lot of speed. Well, that is what we have done, and to be honest we are completely surprised with the great results.

We have add for Xailer 2.0 alpha version an option in the configuration dialog to indicate how many simultaneous process you want to compile, between 1 and 8. The logic is to think that whatever more cores has the CPU more speed will gain, and this is completely true. But even old generation CPUs with ‘Hyper Threading‘ technology also take advantage of this new feature.

In order to see the magnitude of the improvement, we have done some tests with a couple of real projects. These are the results:

graphic1.png

This graph does not pretend to compare CPUs to each other, but the speed improvement when increasing the number of simultaneous compiling processes for each type of CPU.

In summary, for old CPUs with only one core and without HT technology, the improvement is insignificant. But with CPUs with HT technology the improvement is quite important, reducing the compilation time to a little more than half. And finally CPUs multi core are the great beneficiaries, reducing the compile time to less than the quarter, or in other words, compilation speed has been multiplied by more than four.

Here are the results with another project:

graphic2.png

As you can see the results are very similar in improvement, even though the project has almost the double of modules and it logically takes the double of time to do the job.

All this tests have been made with Intel CPUs, since are the only CPUs we have in hand, but surely the result will be the same with AMD CPUs.

Finally, we have included this same technology in XEdit, wich is the tool we use to compile our Xailer libraries and the IDE itself. As a sample, xailer.lib with a Core 2 Quad 2.66 GHz, did take 4 minutes and 40 seconds to complete and right now it only takes 59 seconds, that is to say, only the 21% of the previous time.