This document highlights areas to investigate as part of a system-wide performance optimization process.
During development much attention is devoted to functionality. It is typically only at the later stages of development that performance (speed, RAM use, power consumption) becomes an issue. This is inevitable for many good reasons.
Performance cannot be easily or usefully assessed until a device or system nears completion.
Performance is often affected by interactions between components.
Performance is hardware related.
Optimizations can result in less easily maintained code.
A few worthwhile optimizations are much more efficient than many which have little impact.
This does not mean that improving or optimizing performance should only be considered as a single activity to be performed towards the end of a development project. Good practise and forward thinking in all aspects from the outset are the most important contributors to producing high-performance products.
The Symbian Developer Library is full of advice on how to write fast and efficient code and how to configure your software and hardware for optimized performance.
Performance improvement or optimization may be described as achieving some or all of the following:
Making changes to functioning code is a time consuming and high-risk activity. Before making any changes, therefore, you must be confident that you are likely to have a significant beneficial impact and that you will be able to measure and quantify it.
The Symbian platform includes tools and supports techniques that enable you to analyze, monitor and measure the performance of your system or device.
The Symbian Platform Sampling Profiler
General purpose logging (UTRACE)
Configuration
The Symbian platform and many of its components support various build-time configuration parameters. These include settings in configuration and initialization files, macro definitions and patchable constant values.
Adjustable Performance Configuration
Coding Practise
There are many aspects of coding practise that can result in performance variations. Though such differences might appear small, performance bottlenecks can occur where a piece of inefficient code is executed repeatedly. By identifying where bottlenecks exist you target specific areas of code that have a significant impact on performance.
The following documents, located in other sections of the library, discuss performance and optimization issues relating to particular components of the operating system.
Plugin Framework: Using ECOM and plug-ins in phone ROMs
Various components: System-level engineering documents
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.