An Empirical Study of the Performance Impacts of Android Code Smells

Geoffrey Hecht, Naouel Moha, Romain Rouvoy
{"title":"An Empirical Study of the Performance Impacts of Android Code Smells","authors":"Geoffrey Hecht, Naouel Moha, Romain Rouvoy","doi":"10.1145/2897073.2897100","DOIUrl":null,"url":null,"abstract":"Android code smells are bad implementation practices within Android applications (or apps) that may lead to poor software quality, in particular in terms of performance. Yet, performance is a main software quality concern in the development of mobile apps. Correcting Android code smells is thus an important activity to increase the performance of mobile apps and to provide the best experience to mobile end-users while considering the limited constraints of mobile devices (e.g., CPU, memory, battery). However, no empirical study has assessed the positive performance impacts of correcting mobile code smells. In this paper, we therefore conduct an empirical study focusing on the individual and combined performance impacts of three Android performance code smells (namely, Internal Getter/Setter, Member Ignoring Method, and HashMap Usage) on two open source Android apps. To perform this study, we use the Paprika toolkit to detect these three code smells in the analyzed apps, and we derive four versions of the apps by correcting each detected smell independently, and all of them. Then, we evaluate the performance of each version on a common user scenario test. In particular, we evaluate the UI and memory performance using the following metrics: frame time, number of delayed frames, memory usage, and number of garbage collection calls. Our results show that correcting these Android code smells effectively improve the UI and memory performance. In particular, we observe an improvement up to 12.4% on UI metrics when correcting Member Ignoring Method and up to 3.6% on memory-related metrics when correcting the three Android code smells. We believe that developers can benefit from these results to guide their refactoring, and thus improve the quality of their mobile apps.","PeriodicalId":296509,"journal":{"name":"2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"85","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2897073.2897100","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 85

Abstract

Android code smells are bad implementation practices within Android applications (or apps) that may lead to poor software quality, in particular in terms of performance. Yet, performance is a main software quality concern in the development of mobile apps. Correcting Android code smells is thus an important activity to increase the performance of mobile apps and to provide the best experience to mobile end-users while considering the limited constraints of mobile devices (e.g., CPU, memory, battery). However, no empirical study has assessed the positive performance impacts of correcting mobile code smells. In this paper, we therefore conduct an empirical study focusing on the individual and combined performance impacts of three Android performance code smells (namely, Internal Getter/Setter, Member Ignoring Method, and HashMap Usage) on two open source Android apps. To perform this study, we use the Paprika toolkit to detect these three code smells in the analyzed apps, and we derive four versions of the apps by correcting each detected smell independently, and all of them. Then, we evaluate the performance of each version on a common user scenario test. In particular, we evaluate the UI and memory performance using the following metrics: frame time, number of delayed frames, memory usage, and number of garbage collection calls. Our results show that correcting these Android code smells effectively improve the UI and memory performance. In particular, we observe an improvement up to 12.4% on UI metrics when correcting Member Ignoring Method and up to 3.6% on memory-related metrics when correcting the three Android code smells. We believe that developers can benefit from these results to guide their refactoring, and thus improve the quality of their mobile apps.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Android代码气味对性能影响的实证研究
Android代码异味是Android应用程序(或应用程序)中的不良实现实践,可能导致较差的软件质量,特别是在性能方面。然而,性能是移动应用开发中一个主要的软件质量问题。因此,纠正Android代码异味是一项重要的活动,可以提高移动应用程序的性能,并为移动终端用户提供最佳体验,同时考虑到移动设备的有限限制(例如,CPU,内存,电池)。然而,没有实证研究评估了纠正移动代码气味对性能的积极影响。因此,在本文中,我们对两个开源Android应用程序上的三种Android性能代码气味(即内部Getter/Setter,成员忽略方法和HashMap使用)的单独和组合性能影响进行了实证研究。为了进行这项研究,我们使用Paprika工具包在分析的应用程序中检测这三种代码气味,并通过独立纠正每种检测到的气味来获得四个版本的应用程序,以及所有这些应用程序。然后,我们在普通用户场景测试中评估每个版本的性能。特别是,我们使用以下指标来评估UI和内存性能:帧时间、延迟帧数、内存使用和垃圾收集调用数。我们的结果表明,纠正这些Android代码气味可以有效地改善UI和内存性能。特别是,我们观察到在纠正成员忽略方法时UI指标的改善高达12.4%,在纠正三种Android代码气味时内存相关指标的改善高达3.6%。我们相信开发人员可以从这些结果中受益,以指导他们的重构,从而提高他们的移动应用的质量。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Preserving Energy Resources Using an Android Kernel Extension: A Case Study Comparing Performance Parameters of Mobile App Development Strategies VALERA: An Effective and Efficient Record-and-Replay Tool for Android Mobile Exergaming: Exergames on the Go Model Under Design and Over Design on Mobile Applications
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1