Symbian3/PDK/Source/GUID-B77702FA-7385-51A0-986F-7667669CBDB2.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 16 Jul 2010 17:23:46 +0100
changeset 12 80ef3a206772
parent 9 59758314f811
permissions -rw-r--r--
Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-B77702FA-7385-51A0-986F-7667669CBDB2" xml:lang="en"><title>Guide to Optimising Performance</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>This document highlights areas to investigate as part of a system-wide
performance optimization process. </p>
<section id="GUID-4B3CF640-15D0-462B-8E64-C002115DDF90"><title>Introduction</title> <p>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. </p> <ul>
<li id="GUID-32A6D5A9-4A2C-5EC0-B602-98C0B14A9487"><p>Performance
cannot be easily or usefully assessed until a device or system nears
completion. </p> </li>
<li id="GUID-572885AD-64E4-5963-AA44-7883239E33AA"><p>Performance
is often affected by interactions between components. </p> </li>
<li id="GUID-BF3A5F0F-10A1-5E44-8DA0-0A1089705B85"><p>Performance
is hardware related. </p> </li>
<li id="GUID-2363FD02-FD50-5837-A719-E976925C2F29"><p>Optimizations
can result in less easily maintained code. </p> </li>
<li id="GUID-6016203A-D493-5829-8A33-BB28DD21DDC3"><p>A few worthwhile
optimizations are much more efficient than many which have little
impact. </p> </li>
</ul> <p>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. </p> <p>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. </p> </section>
<section id="GUID-7AAFD9F5-6AFD-42C6-8872-F67EA380C7EB"><title>Objectives</title> <p>Performance improvement or optimization may be described as achieving
some or all of the following: </p> <ul>
<li id="GUID-62821E16-8F93-5C56-ADD7-B1D1ACA08AFB"><p>Increased execution
speed. Applications and processes perform or appear to perform tasks
in less time. </p> </li>
<li id="GUID-DEB5147F-3932-56F4-8E46-435A2A059B38"><p>Reduced start
up time. Devices are ready for use more quickly after being switched
on. </p> <p><xref href="GUID-AF30D941-BFD8-5260-9588-C5DA6983F558.dita">System Starter</xref>  </p> </li>
<li id="GUID-83720AE2-A308-59ED-8C20-FC7981486D4C"><p>Efficient ROM
and RAM use. ROM and RAM cost money. </p> <p><xref href="GUID-EFC99FD5-4EC2-5B9E-AE03-FE66D1ABF8A8.dita">Optimising Compressed
ROMs</xref>  </p> </li>
<li id="GUID-4554E6D0-76D7-589F-924A-9724074F8A0F"><p>Reduced power
consumption. </p> </li>
</ul> </section>
<section id="GUID-A332DB15-D2A3-4596-95ED-5045DE2EA378"><title>Assessment
and Measurement</title> <p>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. </p> <p>The Symbian platform includes tools and supports techniques
that enable you to analyze, monitor and measure the performance of
your system or device. </p> <p>The Symbian Platform Sampling Profiler </p> <p><xref href="GUID-BB174A7C-9B72-55C8-8C8A-F5FB14AB3607.dita">Hardware
Debugging Tools</xref>  </p> <p>General purpose logging (UTRACE)  </p> </section>
<section id="GUID-863D9195-62F8-455E-89C2-AD1D912066A4"><title>Actions
and Activities</title> <p><b>Configuration</b> </p> <p>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. </p> <p><xref href="GUID-7E401451-16EB-515B-88B2-4D0D2D6C7A57.dita">Adjustable Performance
Configuration</xref>  </p> <p><xref href="GUID-B526BA3A-14E4-53B4-9382-437475A1C8A4.dita">List of Patchable
Constants</xref>  </p> <p><b>Coding Practise</b> </p> <p>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. </p> <p><xref href="GUID-49645D0A-AEA4-5D61-A6F3-633D80DCFD5B.dita">Application Performance</xref>  </p> <p><xref href="GUID-12FF05BE-F06E-58F0-909D-05CB6F7FA03E.dita">Code Efficiency</xref>  </p> </section>
<section id="GUID-F2E2E586-E2F8-4EC2-987A-F38ED2771F14"><title>Further
Reading</title> <p>The following documents, located in other sections
of the library, discuss performance and optimization issues relating
to particular components of the operating system. </p> <ul>
<li id="GUID-EF06353C-E907-507E-8468-DC373D6E89AB"><p>Calendar: <xref href="GUID-94AC5E9C-146D-5FE7-B7B6-44AA139A6012.dita">Speeding up Agenda
Application Start-up How-To Document, in the Agenda Model engineering
documents section</xref>  </p> </li>
<li id="GUID-779BAF64-10F9-549D-AAE2-B8A13B923A13"><p>Contacts: <xref href="GUID-2E1DCE15-2F35-57E4-A279-18D1A3AB4BD3.dita">Speeding up Contacts
Application Start-up How-To Document, in the Contacts Model engineering
documents section</xref>  </p> </li>
<li id="GUID-9B7C9702-5877-51B1-87D9-573F6D9A1430"><p>Plugin Framework: <xref href="GUID-85AE95DD-D8C0-5F38-9A98-2F92328162E7.dita">Using ECOM and plug-ins
in phone ROMs</xref>  </p> </li>
<li id="GUID-97F6CBB4-928F-5EE2-857B-15999502AB98"><p>Various components: <xref href="GUID-C6C77895-91E8-5BBF-8D77-0DF6F92F1223.dita">System-level engineering
documents</xref>  </p> </li>
</ul> </section>
</conbody></concept>