Evaluating and optimizing a mobile application framework

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorSahlberg, Jukka-Pekka
dc.contributor.advisorHirvisalo, Vesa
dc.contributor.authorVuolteenaho, Heikki
dc.contributor.departmentTietotekniikan laitosfi
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.schoolSchool of Scienceen
dc.contributor.supervisorSaikkonen, Heikki
dc.date.accessioned2020-12-23T12:13:00Z
dc.date.available2020-12-23T12:13:00Z
dc.date.issued2010
dc.description.abstractThis thesis studies Helium, an application development framework for Java-enabled mobile phones. The Helium system provides another virtual machine on top of the Java Microedition virtual machine. Improving the performance of the Helium virtual machine is the main focus of this thesis. The Helium virtual machine is implemented as a stack machine interpreter. Due to the limitations of the Java Microedition platform, the virtual machine is implemented using pure interpretation. A known problem of pure interpretation is that it is usually significantly slower than compiled code. To mitigate the comparative slowness of Helium, this thesis studies the available research and investigates different optimizations to minimize the performance penalty of interpretation. Based on the study, super instructions are identified as potentially useful optimization for Helium. Super instructions are an extension to the bytecode instruction set. They combine several normal instructions, executing them together. This decreases the interpretation overhead and potentially improves performance in certain applications. A set of existing programs is used as test data to identify bytecode patterns that appear frequently in Helium bytecode. A small benchmark suite is created to evaluate the performance of the modified system compared to the original system. The optimization is found to increase the performance of the test benchmark and also decrease the size of the compiled code.en
dc.description.abstractTässä työssä tutkitaan Java-pohjaisille matkapuhelimille suunnattua mobiilisovelluskehysohjelmistoa nimeltä Helium. Helium-kehysohjelmisto suorittaa toista virtuaalikonetta Java Microedition -virtuaalikoneen päällä. Tämän työn pääasiallisena tarkoituksena on kehittää Helium-virtuaalikoneen suorituskykyä. Helium-virtuaalikoneen toteutuksen ydin on pinopohjainen tavukooditulkki. Johtuen Java Microedition -alustan rajoituksista, virtuaalikone on toteutettu pelkällä tulkkauksella. Tulkkaaminen on tunnetusti merkittävästi hitaampaa kuin konekielelle käännetyn ohjelman suorittaminen. Tässä työssä pyritään vähentämään tulkkauksen aiheuttamaa hitautta Helium-kehysohjelmistossa. Kirjallisuustutkimuksen perusteella Heliumin suorituskyvyn optimointiin valitaan niin sanonut superkäskyt. Superkäskyt laajentavat tavukooditulkin käskykantaa uusilla käskyillä. Nämä uudet käskyt suorittavat yhdistävät monen käskyn toteutuksen yhteen uuteen superkäskyyn. Superkäskyn käyttäminen usean pienemmän käskyn sijasta vähentää tulkkaussilmukassa tapahtuvaa hukkatyötä ja parantaa siten tulkkauksen suorituskykyä. Joukko olemassa olevia Helium-ohjelmia analysoidaan yleisten tavukoodiryhmien löytämiseksi. Jotta superkäskyjen vaikutusta suorituskykyyn voitaisiin verrata, pieni suorituskykytesti luotiin Helium-järjestelmän tehokkuuden arviointiin. Testien tuloksena havaitaan että superkäskyt parantavat hieman järjestelmän suorituskykyä sekä vähentävät suoritettavan tavukoodin kokoa.fi
dc.format.extent(10) + 57
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/97865
dc.identifier.urnURN:NBN:fi:aalto-2020122356692
dc.language.isoenen
dc.programme.majorOhjelmistotekniikkafi
dc.programme.mcodeT-106fi
dc.rights.accesslevelclosedAccess
dc.subject.keywordvirtual machineen
dc.subject.keywordvirtuaalikonefi
dc.subject.keywordinterpreteren
dc.subject.keywordtavukoodifi
dc.subject.keywordbytecodeen
dc.subject.keywordtulkkausfi
dc.subject.keywordsuperinstructionen
dc.subject.keywordsuperkäskyfi
dc.subject.keywordjavaen
dc.subject.keywordmldpen
dc.subject.keywordcldcen
dc.titleEvaluating and optimizing a mobile application frameworken
dc.titleErään mobiilisovelluskehysohjelmiston suorituskyvyn arviointi ja optimointifi
dc.type.okmG2 Pro gradu, diplomityö
dc.type.ontasotMaster's thesisen
dc.type.ontasotPro gradu -tutkielmafi
dc.type.publicationmasterThesis
local.aalto.digiauthask
local.aalto.digifolderAalto_11051
local.aalto.idinssi39603
local.aalto.inssiarchivenr8106
local.aalto.inssilocationP1 Ark Aalto
local.aalto.openaccessno

Files