当前位置: X-MOL 学术Empir. Software Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Improving energy-efficiency by recommending Java collections
Empirical Software Engineering ( IF 3.5 ) Pub Date : 2021-04-12 , DOI: 10.1007/s10664-021-09950-y
Wellington Oliveira , Renato Oliveira , Fernando Castor , Gustavo Pinto , João Paulo Fernandes

Over the last years, increasing attention has been given to creating energy-efficient software systems. However, developers still lack the knowledge and the tools to support them in that task. In this work, we explore our vision that non-specialists can build software that consumes less energy by alternating diversely-designed pieces of software without increasing the development complexity. To support our vision, we propose an approach for energy-aware development that combines the construction of application-independent energy profiles of Java collections and static analysis to produce an estimate of in which ways and how intensively a system employs these collections. We implement this approach in a tool named CT+ that works with both desktop and mobile Java systems and is capable of analyzing 39 different collection implementations of lists, maps, and sets. We applied CT+ to seventeen software systems: two mobile-based, twelve desktop-based, and three that can run in both environments. Our evaluation infrastructure involved a high-end server, two notebooks, three smartphones, and a tablet. Overall, 2295 recommendations were applied, achieving up to 16.34% reduction in energy consumption, usually changing a single line of code per recommendation. Even for a real-world, mature system such as Tomcat, CT+ could achieve a 4.12% reduction in energy consumption. Our results indicate that some widely used collections, e.g., ArrayList, HashMap, and Hashtable, are not energy- efficient and sometimes should be avoided when energy consumption is a major concern.



中文翻译:

通过推荐Java集合来提高能源效率

在过去的几年中,人们越来越重视创建节能软件系统。但是,开发人员仍然缺乏支持他们完成该任务的知识和工具。在这项工作中,我们探索了这样的愿景,即非专家可以通过交替使用多种不同设计的软件来构建耗能更少的软件,而不会增加开发的复杂性。为了支持我们的愿景,我们提出了一种能源感知开发方法,该方法将Java集合的与应用程序无关的能源概况的构建与静态分析相结合,以估算系统使用这些集合的方式和强度。我们在名为CT +的工具中实现了这种方法可与台式机和移动Java系统一起使用,并且能够分析39种不同的列表,地图和集合的集合实现。我们将CT +应用于17个软件系统:两个基于移动的系统,十二个基于桌面的系统以及三个可以在两种环境中运行的系统。我们的评估基础架构包括一台高端服务器,两台笔记本电脑,三台智能手机和一台平板电脑。总共应用了2295条建议,使能耗降低了16.34%,通常每条建议更改一行代码。即使对于诸如Tomcat之类的现实世界中成熟的系统,CT +也可以实现4.12%的能耗降低。我们的结果表明,一些广泛使用的集合,例如ArrayListHashMapHashtable的能源效率不高,因此当能源消耗成为主要问题时,应避免使用HashMapHashtable

更新日期:2021-04-12
down
wechat
bug