Optimizing Mobile Java Location-Based Services in Symbian OS


Autoria(s): Roininen, Tero
Data(s)

06/06/2008

06/06/2008

2008

Resumo

This thesis evaluates methods for obtaining high performance in applications running on the mobile Java platform. Based on the evaluated methods, an optimization was done to a Java extension API running on top the Symbian operating system. The API provides location-based services for mobile Java applications. As a part of this thesis, the JNI implementation in Symbian OS was also benchmarked. A benchmarking tool was implemented in the analysis phase in order to implement extensive performance test set. Based on the benchmark results, it was noted that the landmarks implementation of the API was performing very slowly with large amounts of data. The existing implementation proved to be very inconvenient for optimization because the early implementers did not take performance and design issues into consideration. A completely new architecture was implemented for the API in order to provide scalable landmark initialization and data extraction by using lazy initialization methods. Additionally, runtime memory consumption was also an important part of the optimization. The improvement proved to be very efficient based on the measurements after the optimization. Most of the common API use cases performed extremely well compared to the old implementation. Performance optimization is an important quality attribute of any piece of software especially in embedded mobile devices. Typically, projects get into trouble with performance because there are no clear performance targets and knowledge how to achieve them. Well-known guidelines and performance models help to achieve good overall performance in Java applications and programming interfaces.

Tässä työssä tutkitaan menetelmiä Java-pohjaisten ohjelmistojen suorituskyvyn parantamiseksi. Työssä tutkittujen menetelmien pohjalta tehtiin optimointi Symbian-käyttöjärjestelmän päällä toimivaan Java-ohjelmointirajapintaan, joka tarjoaa Java-pohjaisille mobiiliohjelmistoille paikkatietopalveluja. Lisäksi työssä mitattiin JNI-rajapinnan eri operaatioiden suorituskykyä erityisesti keskittyen Symbian-ympäristöön. Analysointivaiheessa kehitettiin räätälöity työkalu, jonka avulla voitiin tehdä kattavia suorituskykymittauksia. Mittaustulosten perusteella havaittiin, että ohjelmistorajapinnan paikkatietokanta oli erityisen hidas suurilla määrillä dataa. Ohjelmointirajapinnan vanha toteutus osoittautui erittäin hankalaksi optimoinnin kannalta, koska sen suunnitteluun ei ollut juurikaan keskitytty aikaisemmin. Rajapinnalle tehtiin kokonaan uusi arkkitehtuuri ja sen optimoimiseksi käytettiin erityisesti myöhäiseen alustukseen perustuvia menetelmiä ja kiinnitettiin myös huomiota vähäiseen muistinkulutukseen. Suorituskykyoptimointi oli erityisen onnistunut, sillä tulokset osoittivat, että useimmat käyttötapaukset, joihin kyseistä ohjelmointirajapintaan käytetään, olivat erittäin nopeita optimoinnin jälkeen. Suorituskykyoptimointi on erityisen tärkeä osa ohjelmistokehitystä varsinkin laitteissa, joissa resursseja on vähän. Yleisin syy heikkoon suorituskykyyn on erityisesti selkeiden suorituskykytavoitteiden puuttuminen ja epätietoisuus käytettävistä menetelmistä ja suorituskykyoptimoinnin hyödyistä. Yleisesti tunnettujen käytäntöjen ja mallien avulla voidaan kuitenkin saavuttaa hyviä tuloksia suorituskyvyn suhteen Java-ohjelmistoja ja rajapintoja kehitettäessä.

Identificador

http://www.doria.fi/handle/10024/38654

Idioma(s)

en

Palavras-Chave #paikkatietopalvelut #optimointi #mittaaminen #suorituskyky #location-based-services #Symbian #Java #optimization #benchmarking #performance
Tipo

Master's thesis

Diplomityö