After my post about speeding up builds, Dan, the Carbide.c++ Engineering Manager, contacted me asking if I had tried the Carbide.c++ (1.3) beta. While I am enrolled on the beta, I hadn’t tried it because I have been busy and didn’t want the new IDE to disrupt my work.
It turns out that one of the key improvements of 1.3 is that dependencies are now tracked externally and this has resulted in improved build times. The new version also supports concurrent builds (-j 4 option) for multi-core processors…
Dan sent me a chart of the benchmarked improvements in build times…
(This is for the generic/messaging example app in the SDK,
I am told the -j 4 test was probably done on a single core machine)
These times are for the beta so timings may eventually change either way.
With the promise of improved build times, I gave the beta a try.
The 1.3 beta is actually very stable and seems to work well for most tasks except on-device debug that’s currently being refined by the Carbide team. Builds are significantly faster, especially for simple projects. More complex projects having many dependent mmps still tend to be slow for me – but I have a solution – see later.
Other immediately visible improvements include the ability to have multiple sis files for different keys/certs, red highlighting for errors in the console trace and much improved syntax help (fewer identifiers are red indicating they are unknown).
Now back to complex projects. When you have a project consisting of many mmp files (say static libraries) and you change just one file, the resultant project build can still take a very long time. Often you know which library contains the file and you know it’s possible to build just that (Ctrl Alt P when it’s selected in the Symbian Project Navigator) and your main mmp (usually the UI). You will find the two small builds take much less time than asking Carbide to resolve dependencies for all the libraries.