Skip to main content
QUICK REVIEW

[论文解读] An Energy-Aware Programming Approach for Mobile Application Development Guided by a Fine-Grained Energy Model

Xueliang Li, John P. Gallagher|arXiv (Cornell University)|May 17, 2016
Green IT and Sustainability参考文献 36被引用 9
一句话总结

本文提出了一种面向Android应用的能耗感知编程方法,采用细粒度、基于操作的源代码级能耗模型,指导开发人员优化代码以提升能效。通过识别并重构诸如方法调用等高成本操作,该方法在真实场景中将能耗降低了6.4%至50.2%,且未影响代码正确性。

ABSTRACT

Energy efficiency has a significant influence on user experience of battery-driven devices such as smartphones and tablets. It is shown that software optimization plays an important role in reducing energy consumption of system. However, in mobile devices, the conventional nature of compiler considers not only energy-efficiency but also limited memory usage and real-time response to user inputs, which largely limits the compiler's positive impact on energy-saving. As a result, the code optimization relies more on developers. In this paper, we propose an energy-aware programming approach, which is guided by an operation-based source-code-level energy model. And this approach is placed at the end of software engineering life cycle to avoid distracting developers from guaranteeing the correctness of system. The experimental result shows that our approach is able to save from 6.4% to 50.2% of the overall energy consumption depending on different scenarios.

研究动机与目标

  • 为解决高阶编程语言(如Java)在能耗高效移动应用开发中缺乏开发人员意识的问题。
  • 通过构建精确的、基于操作级别的能耗模型,弥合高层源代码与底层能耗消耗之间的鸿沟。
  • 为开发人员在实现阶段提供可操作的能耗感知重构洞察。
  • 评估该方法在真实世界移动应用中的有效性,特别是在游戏引擎等性能关键场景中的表现。
  • 证明能耗优化也可提升应用性能,从而改善用户体验。

提出的方法

  • 作者通过在搭载双ARM四核CPU的Android开发板上分析一系列精心设计的执行案例中的能耗消耗,构建了基于操作的能耗模型。
  • 能耗核算在操作和代码块层面进行,将能耗成本归因于特定代码结构,如方法调用、循环和条件判断。
  • 该模型基于CPU状态驻留时间、缓存未命中次数和电池耗电量的实测数据,识别出高成本操作(如方法调用和数组访问)。
  • 该方法通过聚焦最耗能的代码块,指导重构工作,替换或重构高成本操作,同时保持逻辑正确性。
  • 该方法在一项案例研究中应用于真实世界的游戏引擎,以评估能耗节省和性能影响。
  • 通过受控实验验证了模型的准确性,测量了在多样化应用场景下的能耗降低效果。

实验结果

研究问题

  • RQ1如何以细粒度精度对高阶源代码(如Java)中的能耗进行建模,以指导优化?
  • RQ2哪些特定代码操作在移动应用中对能耗贡献最大?
  • RQ3基于此类模型的针对性重构在多大程度上能降低真实世界移动应用的整体能耗?
  • RQ4能耗感知的重构是否也能提升应用性能,从而改善用户体验?
  • RQ5与基于编译器的优化相比,该方法在能耗节省和实际可行性方面表现如何?

主要发现

  • 所提出的能耗感知编程方法在案例研究的不同应用场景中,实现了6.4%至50.2%的能耗降低。
  • 方法调用被识别为最耗能的操作之一,表明内联化可能以牺牲代码结构为代价带来显著节能效果。
  • 基于操作的模型提供了可操作的细粒度洞察,相较于粗粒度的源码行或方法级性能分析,对指导重构更具实用性。
  • 通过该方法实现的能耗优化也带来了应用性能的提升,表明对用户体验具有双重益处。
  • 尽管是近似模型,该模型仍具备足够的精确度,能将能耗成本映射回源代码级构造,从而有效指导重构。
  • 该方法在软件实现阶段末期具有实际可行性,且不破坏功能正确性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。