Home · All Namespaces · All Classes · Grouped Classes · Modules · Functions |
Early Qtopia versions suffered from slow startup times primarily for the following reasons:
The quicklauncher functionality aims to eliminate 1, 2, and some of 3. Further information about speeding up application startup times can be found in Writing Applications that Start Quickly.
To eliminate loading/linking and QtopiaApplication construction, a stub application (called quicklauncher) will be run in advance of an application being requested. When the quicklauncher is started, it will:
When quicklauncher is requested to run an application, it will:
At this point, quicklauncher appears and should behave exactly as if the app had been started normally.
The use of static global initializers in quicklaunch applications should be avoided where possible. The problem is that these fire before quicklauncher can confirm and switch to the identity of the application. A typical symptom is SXE errors reported for the quicklauncher process or for an invalid process.
Static global initalizers can be used as long as they do not cause code that interacts with LIDS/SXE to be run. It is suggested to limit static global initializers to registration-type functions and to perform any further actions required once the main widget has been constructed.
The QuickExeApplicationLauncher server task is responsible for ensuring enough instances of quicklauncher are running.
When a request to launch an application is made:
If the server is running as root, it will set the priority of quicklauncher to low while it is being started to ensure that it does not take processor cycles needed by foreground processes. It will be given normal priority when a request to load a new application is received.
To enable an application for quicklauncher, use the macros described in Applications.
The initial results of the design described above are:
Application | Qtopia 1.6.0 (sec) | + quicklauncher (sec) |
---|---|---|
Calendar | 1.9 | 0.8 |
Contacts | 2.2 | 1.1 |
2.4 | 1.2 | |
Image Viewer | 1.4 | 0.9 |
Media Player | 2.3 | 0.4/1.3* |
Tasks | 2.0 | 1.1 |
Today | 1.8 | 0.8 |
Clock | 1.6 | 0.6 |
* The Media Player delays its main GUI construction, so the initial window displays in 0.4 seconds and the full GUI is displayed in 1.3 seconds
Copyright © 2009 Trolltech | Trademarks | Qt Extended 4.4.3 |