Return to search

Performance Evaluation of Kotlin Multiplatform Mobile and Native iOS Development in Swift / Prestandautvärdering av Kotlin Multiplatform Mobile och Native iOS-utveckling med Swift

Today's mobile development resides in the two main operating systems Android and iOS. It is popular to develop mobile applications individually for each respective platform, referred to as native development. To reduce additional costs, cross-platform solutions have emerged that enable shared development for both platforms. Kotlin Multiplatform Mobile (KMM) is a relatively unexplored cross-platform tool developed by JetBrains. The purpose of this study is to evaluate the performance of iOS applications developed in KMM compared to native Swift. We compare the two approaches for developing iOS apps by compiling a benchmark suite and measuring the performance metrics execution time, memory consumption, and CPU usage. Our benchmark suite is a collection of 7 benchmarks consisting of high-level functionalities networking and database management, as well as low-level computational tasks from the Computer Language Benchmarks Game (CLBG) suite. For the studied benchmarks, the results indicate that KMM generally achieves faster execution times, as higher memory consumption and CPU usage. but with a trade-off overhead in higher memory consumption and CPU usage. We have found KMM to achieve up to 2,7 seconds faster execution time, consume up to 390MB more memory, and up to 30% more CPU than with native Swift. libraries achieve faster execution times, but with a trade-off overhead in increased memory consumption and CPU usage. Besides, our results highlight correlations between the garbage collection cycles of KMM with profiling patterns of memory consumption and CPU usage. the specific benchmark implementations analyzed, and the device used to benchmark them. studies are therefore needed to further generalize our conclusions. / Den nutida mobilutvecklingen domineras av de två huvudsakliga operativsystemen Android och iOS. Det är populärt att utveckla mobilapplikationer separat för varje plattform, så kallad native utveckling. För att minska kostnader relaterade till native utveckling har plattformsoberoende lösningar tillkommit, som istället möjliggör delad utveckling för båda plattformarna. Kotlin Multiplatform Mobile (KMM) är ett relativt outforskat plattformsoberoende verktyg utvecklat av JetBrains. Syftet med denna studie är att utvärdera prestandan hos iOS-applikationer utvecklade i KMM jämfört med native Swift. Vi jämför de två tillvägagångssätten för att utveckla iOS-appar genom att sammanställa en benchmark-svit och mäta prestandametrikerna exekveringstid, minnesanvändning och CPU-användning. Vår benchmark svit består av 7 benchmark-program som omfattar högnivåfunktionaliteter som nätverk- och databashantering, samt lågnivåfunktionaliteter med benchmark-algoritmer från Computer Language Benchmarks Game (CLBG)-sviten. För att exekvera benchmark-programmen och samla in prestandametriker har en applikation utvecklats och använts för att utföra våra experiment på en iOS-enhet. För de undersökta benchmark-programmen visar resultaten att KMM generellt uppnår snabbare exekveringstider, men med en kompromiss i form av ökad minnesanvändning och CPU-användning. Vi har observerat att KMM kan uppnå upp till 2,7 sekunder snabbare exekveringstid, förbruka upp till 390MB mer minne och upp till 30% mer CPU-användning jämfört med native Swift. Dessutom antyder våra resultat korrelationer mellan KMM Garbage Collection cykler och profileringsbeteendet i dess minnes- och CPU-användning.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-335119
Date January 2023
CreatorsSkantz, Anna
PublisherKTH, Skolan för elektroteknik och datavetenskap (EECS), Stockholm : KTH Royal Institute of Technology
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-EECS-EX ; 2023:585

Page generated in 0.0024 seconds