Guide to Optimising Performance

This document highlights areas to investigate as part of a system-wide performance optimization process.

Introduction

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.

Objectives

Performance improvement or optimization may be described as achieving some or all of the following:

  • Increased execution speed. Applications and processes perform or appear to perform tasks in less time.

  • Reduced start up time. Devices are ready for use more quickly after being switched on.

    System Starter

  • Efficient ROM and RAM use. ROM and RAM cost money.

    Optimising Compressed ROMs

  • Reduced power consumption.

Assessment and Measurement

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

Hardware Debugging Tools

General purpose logging (UTRACE)

Actions and Activities

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

List of Patchable Constants

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.

Application Performance

Code Efficiency

Further Reading

The following documents, located in other sections of the library, discuss performance and optimization issues relating to particular components of the operating system.