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
ひとこと要約

本稿では、開発者がコードのエネルギー効率を最適化するのを支援する、細粒度で操作ベースのソースレベルエネルギーモデルを用いた、エネルギーに配慮したプログラミング手法を提案する。メソッド呼び出しのような高コストな操作を同定し、リファクタリングすることで、コードの正しさを損なわずに実世界のシナリオでエネルギー消費を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状態残留時間、キャッシュミス、バッテリー消費の実測値に基づき、高コストな操作(例:メソッド呼び出し、配列アクセス)を同定した。
  • このアプローチは、論理的正しさを保持したまま、高エネルギー消費のコードブロックを特定し、代替または再構築することでリファクタリングを促進する。
  • ケーススタディとして、実世界のゲームエンジンを用いてエネルギー削減とパフォーマンスへの影響を評価した。
  • 多様なアプリケーションシナリオにおけるエネルギー削減を測定する制御実験を通じて、モデルの妥当性を検証した。

実験結果

リサーチクエスチョン

  • RQ1Javaのような高レベルのソースコードにおけるエネルギー消費を、細粒度の精度でモデル化する方法は何か? これにより最適化を導くことができるか?
  • RQ2モバイルアプリケーションにおけるエネルギー消費に最も顕著に寄与する具体的なコード操作は何か?
  • RQ3このようなモデルに従った的を射たリファクタリングによって、実世界のモバイルアプリにおける全体のエネルギー使用量はどの程度削減可能か?
  • RQ4エネルギーに配慮したリファクタリングは、アプリケーションのパフォーマンスを向上させることで、ユーザー体験を向上させられるか?
  • RQ5エネルギー削減の観点から、コンパイラベースの最適化と比較して、このアプローチはエネルギー効果と実用的妥当性においてどのように差異を示すか?

主な発見

  • 提示されたエネルギーに配慮したプログラミング手法は、ケーススタディにおけるさまざまなアプリケーションシナリオで、エネルギー消費を6.4%~50.2%まで削減した。
  • メソッド呼び出しは、エネルギー消費が著しく高い操作の一つであることが同定され、インライン化によりコード構造の犠牲を払っても顕著な削減が得られると示唆された。
  • 操作ベースのモデルは、リファクタリングを導くために、ソース行レベルやメソッドレベルの粗いプロファイリングよりも、より実用的で細粒度のインサイトを提供する。
  • このアプローチによるエネルギー最適化は、アプリケーションのパフォーマンス向上にも寄与し、ユーザー体験の向上という二重の利点をもたらした。
  • モデルは近似であるものの、エネルギーコストをソースレベルの構造に正確に紐づけることができ、効果的なリファクタリングを導くのに十分な精度を有している。
  • このアプローチは、機能的正しさを損なわずに、ソフトウェア実装フェーズの最終段階でも実用的かつ適用可能である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。