Metrowerks Codewarrior has a Concurrent compilation feature which is disabled by defaut but which can speed up your builds when used on a system with modern processor (hyperthreading support). To enable this option, open the Codewarrior / Edit / Preferences menu and select the "Concurrent Compiles" tab:
The Codewarrior Preference window
Click the Use Concurrent Compiles checkbox and validate. The default recommended choice should be fine but you can enter a custom value if you want to do some testing.
On my system - a desktop with a Pentium 4 processor at 3.2Mhz, 1Go Dual channel DDR-SDRAM PC533 and a RAID-1 disk array, I experienced a 20-25% diminution of my compilation times. Here are some samples figures for two components of a same project (total time in seconds, including link):
WINSCW build
| Application | | Default settings | | 2 Compilations | | 4 Compilations |
| a utility library (56 files) | | 34s | | 27.5s | | 27.5s |
| a MPEG4 decoder engine (127 files) | | 89s | | 66s | | 66s |
ARMI build
| Application | | Default settings | | 2 Compilations | | 4 Compilations |
| a utility library (56 files) | | 94s | | 74s | | 72s |
| a MPEG4 decoder engine (127 files) | | 217s | | 175s | | 171s |
The figures above show a global performance increase of around 20% for rather big component, no matter whether you use WINSCW or ARMI target. This is quite interesting when you are just sitting there waiting for your compilation to finish (actually writing this article!).
Note that when enabling the concurrent compilation, the Codewarrior CPU usage raises to 100% compared to around 72% when the default non concurrent configuration. This makes the usage of other applications a little bit slow compared to what you may be used to.
|