See into S60
» Subscribe
» Favorite Links
» What is S60?
» Freeware & Trials
» S60 devices
» Hints and tips

» About this blog
» Blognotes (15)
» Bugs and Workarounds (4)
» Build tools (5)
» Carbide.c++ 1.1 (4)
» Carbide.c++ 1.2 (8)
» Carbide.c++ 1.3.x (9)
» Carbide.c++ 2.0.x (12)
» Carbide Plug-Ins (4)
» CodeWarrior (2)
» FAQ (6)
» Future directions (25)
» General (48)
» Off-topic (5)
» On-device debugging (13)
» Performance Investigator (2)
» Product features (18)
» Product releases (16)
» Screencast (14)
» Support (36)
» Tool setup (6)
» UI Designer (8)
» Usability (18)
» Work in Progress (14)
» Write-build-debug (4)
» Tommi's Reports from Wonderland
» Voice of S60
» Creating Carbide C++
» S60 Multimedia Blog
» The Convergence Zone
» Web Browser for S60 Blog
» Consumed by S60
» Java for S60
» Mobile Web Server
» Mobile Security
» See into S60
» Business2GO
» Nokia Podcasting Application Blog
» New Remote Connections View
» Terminating Multiple Processes
» Agile Tuning of the Austin Team
» Introduction to the workspace screencast
» Adding DLLs while Debugging
» September 2008
» August 2008
» July 2008
» June 2008
» May 2008
» April 2008
» March 2008
» February 2008
» August 2007
» May 2007
» April 2007
» March 2007
» February 2007
» January 2007
» December 2006
» November 2006
» October 2006
» September 2006
» August 2006
» July 2006
» June 2006
Subscribe
Links
June 06, 2008 Building a better build system - Part 4 Benchmarking Posted by Raul Zuniga at 06:14 PM | Categories: Build tools

So I've talked about the improvements we made in our build system in earlier articles. These include

1. Allowing the compiler to do the dependency tracking
2. Tracking changes to the mmp (and bld.inf).
3. Allow multiple jobs to be spawned by setting the Make environment variable to "make -j N" to allow the make rules to run concurrently in multiiple jobs and thus the compilation time will be faster.
4. Allow the user to turn on the Eclipse incremental builder to determine if anything has changed in the workspace.

But how much faster? We did some example benchmarking to give us an idea.

Our first round of benchmarking was done with a Nokia S60 3.1 kit using a fairly large project called telephony. We tested on single, duo and quad core machines for the emulator and on-device using RVCT 2.2 compiler. Let's look at the results:

setup2.jpg

benchmark1.jpg

By design the dependency tracking times can be greater than the command line on initial builds because the compiler is doing the dependency tracking This can be seen on line 1-3.. But on subsequent builds is where the real benefits are seen as the dependency tracking times are decreased substantially from command line. This can be seen on lines 4-5. Build times are decreased even further when concurrency is turned on. This can be seen on line 6.

When the Eclipse incremental builder is turned then a rebuild takes no time. This can be seen in lines 7-8.

So looking strictly at the numbers the improvements to the build system were an enormous success! Of course due to complexity of some projects(such as projects using circular dependencies) the build system may not always work but we've rarely had reports of this. But that is why we give you the option to switch over to the regular command line system.

It also seems to help when you increase the memory and number of cores. So you may want to think about taking the boss out to dinner and asking for an upgrade in-between martini's!


Permalink |


Post a comment







«Back to previous page