10 <!DOCTYPE concept |
10 <!DOCTYPE concept |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
12 <concept id="GUID-B77702FA-7385-51A0-986F-7667669CBDB2" xml:lang="en"><title>Guide to Optimising Performance</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
12 <concept id="GUID-B77702FA-7385-51A0-986F-7667669CBDB2" xml:lang="en"><title>Guide to Optimising Performance</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
13 <p>This document highlights areas to investigate as part of a system-wide |
13 <p>This document highlights areas to investigate as part of a system-wide |
14 performance optimization process. </p> |
14 performance optimization process. </p> |
15 <section id="GUID-4B3CF640-15D0-462B-8E64-C002115DDF90"><title>Introduction</title> <p>During development much attention |
15 <section id="GUID-4B3CF640-15D0-462B-8E64-C002115DDF90"><title>Introduction</title> <p>During development much attention is devoted to functionality. |
16 is devoted to functionality. It is typically only at the later stages |
16 It is typically only at the later stages of development that performance |
17 of development that performance (speed, RAM use, power consumption) |
17 (speed, RAM use, power consumption) becomes an issue. This is inevitable |
18 becomes an issue. This is inevitable for many good reasons. </p> <ul> |
18 for many good reasons. </p> <ul> |
19 <li id="GUID-32A6D5A9-4A2C-5EC0-B602-98C0B14A9487"><p>Performance |
19 <li id="GUID-32A6D5A9-4A2C-5EC0-B602-98C0B14A9487"><p>Performance |
20 cannot be easily or usefully assessed until a device or system nears |
20 cannot be easily or usefully assessed until a device or system nears |
21 completion. </p> </li> |
21 completion. </p> </li> |
22 <li id="GUID-572885AD-64E4-5963-AA44-7883239E33AA"><p>Performance |
22 <li id="GUID-572885AD-64E4-5963-AA44-7883239E33AA"><p>Performance |
23 is often affected by interactions between components. </p> </li> |
23 is often affected by interactions between components. </p> </li> |
33 the end of a development project. Good practise and forward thinking |
33 the end of a development project. Good practise and forward thinking |
34 in all aspects from the outset are the most important contributors |
34 in all aspects from the outset are the most important contributors |
35 to producing high-performance products. </p> <p>The Symbian Developer |
35 to producing high-performance products. </p> <p>The Symbian Developer |
36 Library is full of advice on how to write fast and efficient code |
36 Library is full of advice on how to write fast and efficient code |
37 and how to configure your software and hardware for optimized performance. </p> </section> |
37 and how to configure your software and hardware for optimized performance. </p> </section> |
38 <section id="GUID-7AAFD9F5-6AFD-42C6-8872-F67EA380C7EB"><title>Objectives</title> <p>Performance improvement or optimization |
38 <section id="GUID-7AAFD9F5-6AFD-42C6-8872-F67EA380C7EB"><title>Objectives</title> <p>Performance improvement or optimization may be described as achieving |
39 may be described as achieving some or all of the following: </p> <ul> |
39 some or all of the following: </p> <ul> |
40 <li id="GUID-62821E16-8F93-5C56-ADD7-B1D1ACA08AFB"><p>Increased execution |
40 <li id="GUID-62821E16-8F93-5C56-ADD7-B1D1ACA08AFB"><p>Increased execution |
41 speed. Applications and processes perform or appear to perform tasks |
41 speed. Applications and processes perform or appear to perform tasks |
42 in less time. </p> </li> |
42 in less time. </p> </li> |
43 <li id="GUID-DEB5147F-3932-56F4-8E46-435A2A059B38"><p>Reduced start |
43 <li id="GUID-DEB5147F-3932-56F4-8E46-435A2A059B38"><p>Reduced start |
44 up time. Devices are ready for use more quickly after being switched |
44 up time. Devices are ready for use more quickly after being switched |
47 and RAM use. ROM and RAM cost money. </p> <p><xref href="GUID-EFC99FD5-4EC2-5B9E-AE03-FE66D1ABF8A8.dita">Optimising Compressed |
47 and RAM use. ROM and RAM cost money. </p> <p><xref href="GUID-EFC99FD5-4EC2-5B9E-AE03-FE66D1ABF8A8.dita">Optimising Compressed |
48 ROMs</xref> </p> </li> |
48 ROMs</xref> </p> </li> |
49 <li id="GUID-4554E6D0-76D7-589F-924A-9724074F8A0F"><p>Reduced power |
49 <li id="GUID-4554E6D0-76D7-589F-924A-9724074F8A0F"><p>Reduced power |
50 consumption. </p> </li> |
50 consumption. </p> </li> |
51 </ul> </section> |
51 </ul> </section> |
52 <section id="GUID-A332DB15-D2A3-4596-95ED-5045DE2EA378"><title>Assessment and Measurement</title> <p>Making changes |
52 <section id="GUID-A332DB15-D2A3-4596-95ED-5045DE2EA378"><title>Assessment |
53 to functioning code is a time consuming and high-risk activity. Before |
53 and Measurement</title> <p>Making changes to functioning code is a |
54 making any changes, therefore, you must be confident that you are |
54 time consuming and high-risk activity. Before making any changes, |
55 likely to have a significant beneficial impact and that you will be |
55 therefore, you must be confident that you are likely to have a significant |
56 able to measure and quantify it. </p> <p>The Symbian platform includes |
56 beneficial impact and that you will be able to measure and quantify |
57 tools and supports techniques that enable you to analyze, monitor |
57 it. </p> <p>The Symbian platform includes tools and supports techniques |
58 and measure the performance of your system or device. </p> <p>The |
58 that enable you to analyze, monitor and measure the performance of |
59 Symbian Platform Sampling Profiler </p> <p><xref href="GUID-BB174A7C-9B72-55C8-8C8A-F5FB14AB3607.dita">Hardware Debugging |
59 your system or device. </p> <p>The Symbian Platform Sampling Profiler </p> <p><xref href="GUID-BB174A7C-9B72-55C8-8C8A-F5FB14AB3607.dita">Hardware |
60 Tools</xref> </p> <p><xref href="GUID-A3E77067-7982-5803-A274-0C8F2562B483.dita">General purpose logging |
60 Debugging Tools</xref> </p> <p>General purpose logging (UTRACE) </p> </section> |
61 (UTRACE)</xref> </p> </section> |
61 <section id="GUID-863D9195-62F8-455E-89C2-AD1D912066A4"><title>Actions |
62 <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 |
62 and Activities</title> <p><b>Configuration</b> </p> <p>The Symbian platform and many of its |
63 components support various build-time configuration parameters. These |
63 components support various build-time configuration parameters. These |
64 include settings in configuration and initialization files, macro |
64 include settings in configuration and initialization files, macro |
65 definitions and patchable constant values. </p> <p><xref href="GUID-7E401451-16EB-515B-88B2-4D0D2D6C7A57.dita">Adjustable Performance |
65 definitions and patchable constant values. </p> <p><xref href="GUID-7E401451-16EB-515B-88B2-4D0D2D6C7A57.dita">Adjustable Performance |
66 Configuration</xref> </p> <p><xref href="GUID-B526BA3A-14E4-53B4-9382-437475A1C8A4.dita">List of Patchable |
66 Configuration</xref> </p> <p><xref href="GUID-B526BA3A-14E4-53B4-9382-437475A1C8A4.dita">List of Patchable |
67 Constants</xref> </p> <p><b>Coding Practise</b> </p> <p>There are many aspects of coding practise |
67 Constants</xref> </p> <p><b>Coding Practise</b> </p> <p>There are many aspects of coding practise |
68 that can result in performance variations. Though such differences |
68 that can result in performance variations. Though such differences |
69 might appear small, performance bottlenecks can occur where a piece |
69 might appear small, performance bottlenecks can occur where a piece |
70 of inefficient code is executed repeatedly. By identifying where bottlenecks |
70 of inefficient code is executed repeatedly. By identifying where bottlenecks |
71 exist you target specific areas of code that have a significant impact |
71 exist you target specific areas of code that have a significant impact |
72 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> |
72 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> |
73 <section id="GUID-F2E2E586-E2F8-4EC2-987A-F38ED2771F14"><title>Further Reading</title> <p>The following documents, |
73 <section id="GUID-F2E2E586-E2F8-4EC2-987A-F38ED2771F14"><title>Further |
74 located in other sections of the library, discuss performance and |
74 Reading</title> <p>The following documents, located in other sections |
75 optimization issues relating to particular components of the operating |
75 of the library, discuss performance and optimization issues relating |
76 system. </p> <ul> |
76 to particular components of the operating system. </p> <ul> |
77 <li id="GUID-EF06353C-E907-507E-8468-DC373D6E89AB"><p>Calendar: <xref href="GUID-94AC5E9C-146D-5FE7-B7B6-44AA139A6012.dita">Speeding up Agenda |
77 <li id="GUID-EF06353C-E907-507E-8468-DC373D6E89AB"><p>Calendar: <xref href="GUID-94AC5E9C-146D-5FE7-B7B6-44AA139A6012.dita">Speeding up Agenda |
78 Application Start-up How-To Document, in the Agenda Model engineering |
78 Application Start-up How-To Document, in the Agenda Model engineering |
79 documents section</xref> </p> </li> |
79 documents section</xref> </p> </li> |
80 <li id="GUID-779BAF64-10F9-549D-AAE2-B8A13B923A13"><p>Contacts: <xref href="GUID-2E1DCE15-2F35-57E4-A279-18D1A3AB4BD3.dita">Speeding up Contacts |
80 <li id="GUID-779BAF64-10F9-549D-AAE2-B8A13B923A13"><p>Contacts: <xref href="GUID-2E1DCE15-2F35-57E4-A279-18D1A3AB4BD3.dita">Speeding up Contacts |
81 Application Start-up How-To Document, in the Contacts Model engineering |
81 Application Start-up How-To Document, in the Contacts Model engineering |