CN106610873B - 一种Android设备上应用程序能耗预测方法 - Google Patents

一种Android设备上应用程序能耗预测方法 Download PDF

Info

Publication number
CN106610873B
CN106610873B CN201611012038.6A CN201611012038A CN106610873B CN 106610873 B CN106610873 B CN 106610873B CN 201611012038 A CN201611012038 A CN 201611012038A CN 106610873 B CN106610873 B CN 106610873B
Authority
CN
China
Prior art keywords
energy consumption
application program
android
running
recording
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611012038.6A
Other languages
English (en)
Other versions
CN106610873A (zh
Inventor
郭耀
许云楠
王承柯
陈向群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University Information Technology Institute (tianjin Binhai)
Original Assignee
Peking University Information Technology Institute (tianjin Binhai)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University Information Technology Institute (tianjin Binhai) filed Critical Peking University Information Technology Institute (tianjin Binhai)
Priority to CN201611012038.6A priority Critical patent/CN106610873B/zh
Publication of CN106610873A publication Critical patent/CN106610873A/zh
Application granted granted Critical
Publication of CN106610873B publication Critical patent/CN106610873B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种Android设备上应用程序能耗预测方法。该方法包括:1)通过全***模拟软件运行Android***,并安装应用程序;2)记录***状态并运行应用程序,收集开启的线程的信息;3)通过Android***重现记录的操作序列的执行顺序;以每次进程调度为单位记录每一个预设的时间段中应用程序的能耗数据;4)对每个线程标注其运行时间,迭代处理步骤3),直到每一轮迭代得到的能耗数据的差值小于一设定的阈值时停止迭代,得到应用程序能耗预测结果。本发明能够在不需要使用物理设备的基础上,给定***版本和设备类型,测量Android***中应用的运行时能耗。

Description

一种Android设备上应用程序能耗预测方法
技术领域
本发明提供一种运行Android***的设备上的应用程序使用电能多少的评估预测方法,具体涉及一种基于Gem5全***模拟器上的应用能耗事件记录和重放的能耗测量方法。
背景技术
Android***,中文俗称安卓,是一个基于Linux内核的开放移动操作***,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发,主要设计用于触屏移动设备如智能手机和平板电脑。2010年末数据显示,仅正式推出两年的Android操作***在市场占有率上已经超越称霸逾十年的诺基亚Symbian***,成为全球第一大智能手机操作***。在2014年Google I/O开发者大会上Google宣布过去30天里有10亿台活跃的安卓设备,相较于2013年6月则是5.38亿。Android在适配智能手持设备的同时,也推出了Android Wear、Android TV和Android Auto等其他领域的分支***。
由于Android***主要应用在移动设备上面(Android移动手持设备和AndroidWear分支***),这些设备大多依赖于电池的供电,所以Android***上面应用的能耗预测和分析就显得格外重要。在以往的研究工作中已经有若干相关的工作。
Shuai Hao在2012年GREENS会议上发表的《Estimating Android applications'CPU energy usage via bytecode profiling》这篇研究工作中,提出了一种基于对应用的字节码进行分析和能耗统计的方法。该方法的每种字节码的能耗统计信息,是通过统计一种特定的设备得出的。这种方式虽然简单有效,但是没有考虑到Android***实际上是适配在多种设备上的,设备之间的OS版本、CPU类型、Cache配置、内存大小以及外设种类都不尽相同,将其一概而论是不够科学的。
美国普渡大学的Abhinav Pathak在2012年EUROSYS会议上发表的《Where is theenergy spent inside my app?Fine Grained Energy Accounting on Smartphones withEprof》研究工作中,提出了一种Android智能手机上应用的细粒度能耗分析工具——Eprof。Eprof的方法是记录应用在设备上运行过程中的***调用序列,根据每一种硬件的能耗模型,并将***调用重放到能耗模型中,得到应用的能耗信息。
除了使用能耗模拟工具,在工业界和学术界,更多的使用实际测量的方式来对应用的能耗进行分析和评估,但是在实际测量的时候一方面很难将所测应用的能耗和其他应用的能耗区分开;另一方面,由于设备中CPU和GPU的DVFS(动态电压频率调整)的存在,导致程序的执行时间受环境(比如:CPU温度)影响比较大,在实际测量中,由于难以控制这些变量,这就导致了程序的运行时间不能轻易的确定,经常会出现测量结果方差过大的情况,进而需要反复多次测量,费时费力。如果需要购买多种多样的设备并改装电池电路,从成本上也是有不小的问题。这些因素导致了实际测量Android***中应用的能耗成为了一个难题。
发明内容
本发明的目的是提供一种新的应用程序能耗测量方法,使得在不需要使用物理设备的基础上,给定***版本和设备类型,测量Android***中应用的运行时能耗。
现有技术的研究工作的缺点总结起来包括:1.缺少多种设备的适配方式;2.对程序运行时间的估计不准确。本发明旨在改善这两个缺点。
本发明采用的技术方案如下:
一种Android设备上应用程序能耗预测方法,其步骤包括:
1)通过全***模拟软件运行Android***,将待测试的应用程序安装在所述Android***上;
2)记录所述Android***的***状态并运行应用程序,收集开启的线程的信息;
3)预先记录用户对应用程序的操作序列,并通过所述Android***重现所记录的操作序列的执行顺序,同时以操作***的每次进程调度为单位记录每一个预设的时间段中应用程序的能耗数据;
4)对每个线程标注其运行时间并迭代处理步骤3),直到每一轮迭代得到的能耗数据的差值小于设定的阈值时停止迭代,从而得到应用程序能耗预测结果。
进一步地,步骤1)所述全***模拟软件为Gem5。
进一步地,步骤2)所述***状态包括:CPU寄存器的值、内存块。
进一步地,步骤3)通过软件LoadRunner来重现所述操作序列的执行顺序。
进一步地,步骤3)所述能耗数据包括应用程序的运行时间、能耗和被Linux操作***切换下CPU的原因。
进一步地,所述运行时间和所述能耗通过McPAT进行计算,通过Gem5模拟器的日志输出CPU以及Cache部分的能耗;所述被Linux操作***切换下CPU的原因,通过修改Linux***中进程调度部分代码并增加日志信息来实现。
进一步地,步骤3)中,如果是访问外设相关的指令,则根据预先得到的Android设备中外设的访问延迟分布数据,估计访问延迟,在延迟时间之后再返回能耗数据。
进一步地,步骤4)所述设定的阈值优选为1焦耳。
本发明提供了一种运行着Android***设备上的应用使用电能多少的评估预测方法,其具有以下功能:
A.支持用户输入操作序列进行应用测试和测试机型;
B.支持多种设备的能耗测试;
C.提供相对准确的能耗数据;
D.提供函数级别的能耗数据。
本发明的有益效果是:
利用本发明提供的技术方案,对于应用开发者来说,可以针对特定的机型进行能耗优化调试,并提供Java代码中函数级别的能耗分析。对于芯片供应商来说,可以用来建立快速测试模型,分析Android应用能耗。
附图说明
图1本发明的线下模型建立流程。
图2本发明的线上能耗分析流程。
具体实施方式
下面通过具体实施例和附图,对本发明做进一步说明。
本发明的Android设备上应用程序能耗预测方法分为两个部分:A.线下模型建立部分,如图1所示;B.线上能耗分析部分,如图2所示。
A部分具体实施方式:
1.获取Android设备的硬件能耗数据,写入McPAT配置文件。
其中能耗数据是指CPU的种类、核心数、Cache算法、Cache Line大小等数据。采用读取设备的配置的方法获取设备能耗数据。McPAT是一款开源的集成化的多核***能耗和时间的建模工具,可以支持用户修改***的配置,并写入McPAT的配置文件中。
2.获取Android设备中外设的访问延迟和访问序列的相关的分布函数。
其中外设是指手机或者其他设备中的SoC上面的模块组件,包括内存、网卡、SDcard、传感器、屏幕等。获取访问延迟和访问序列的相关的分布是用来生成仿真时的延迟数据。采用实际测量或者查阅组件的电气性能文档的方式来获取这些分布。
3.记录用户的操作序列,即通过Monkey这个自动化测试工具生成用户操作,或者自己对应用进行特定的操作,并记录用户在使用Android***时对应用组件的操作序列。
4.获取Android设备的CPU的热传导模型,即设备的CPU在不同温度下,每秒钟向外界耗散的热能。这是通过让CPU达到某个温度后自动散热,实时读取CPU温度得到的。
B部分具体实施方式:
1.首先通过全***模拟软件Gem5运行Android***,然后将所需要测试的应用安装在虚拟***上面;
2.记录Android***的***状态并运行应用,收集开启的线程的信息;其中***状态是指***的CPU寄存器的值、内存块等;
3.使用记录好的用户操作序列和***状态来重现***执行顺序,重现的方式是通过软件LoadRunner来实现。接下来以操作***的每次进程调度为单位,通过A部分步骤1获得的能耗数据,记录每一个预设的时间段(一个小的时间段)中应用程序的运行时间、能耗和被Linux操作***切换下CPU的原因(包括时间片到期以及等待IO等)。如果是访问外设相关的指令,需要根据之前A部分步骤2得到的访问延迟分布数据,估计访问延迟,在这个延迟时间之后再返回相关数据。其中前两者可以通过McPAT进行计算,McPAT是惠普公司推出的一款开源的集成化的多核***能耗和时间的建模工具,在用户配置了相关参数之后,可以根据Gem5模拟器的日志输出计算CPU以及Cache部分的能耗;后者可以通过修改Linux***中进程调度部分代码并增加日志信息来实现。其中,CPU和GPU的温度是通过已经预先获得的设备的热能传递模型(即A部分步骤4提到的CPU的热传导模型)根据产生的热能的多少得到的。将温度数据送入温度传感器的接口中,***会自动的安装DVFS调整频率。
4.对每个线程标注其运行时间,迭代处理步骤3,这会改变DVFS的策略,得到不同的能耗值,在每一轮迭代得到的的能耗数据的差值小于一个设定的阈值(比如1焦耳)的时候,停止迭代,从而得到应用程序能耗预测结果。
实施例:
A部分实施例
1.获取Nexus 6P手机的SoC是高通骁龙810,其中CPU是2.0GHz八核64位ARMv8-A,GPU是Adreno 430。ARMv8-A的L1cache的size是32kb。
2.获取相关的网卡读写速度模型、sdcard读写速度模型和热能分析模型。
B部分实施例
开发者测试自己的应用,首先编写测试用的输入配置文件。在此能耗平台上选择一个机型,比如Nexus 6P。
经过第一轮正常UI速度运行测试,获取此进程会建立哪些线程,和哪些外设。
在第二轮测试中,每一次进程切换,计算能耗、更新温度和频率。确定每个线程的运行速度和运行时间。
经过多轮迭代,在每一轮迭代之间的能耗数据的差值小于一个特定数值(比如1焦耳)的时候,停止迭代。然后给开发者提供能耗信息。
本发明在其它实施例中,也可以使用Qemu或者其他全***(full system)模拟器代替Gem5模拟器,能够取得同样的技术效果。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (6)

1.一种Android设备上应用程序能耗预测方法,其特征在于,包括以下步骤:
1)通过全***模拟软件运行Android***,将待测试的应用程序安装在所述Android***上;
2)记录所述Android***的***状态并运行应用程序,收集开启的线程的信息;
3)预先记录用户对应用程序的操作序列,并通过所述Android***重现所记录的操作序列的执行顺序,同时以操作***的每次进程调度为单位,根据预先获取的Android设备的硬件能耗数据,记录每一个预设的时间段中应用程序的能耗数据;所述应用程序的能耗数据包括应用程序的运行时间、能耗和被Linux操作***切换下CPU的原因,所述被Linux操作***切换下CPU的原因,通过修改Linux***中进程调度部分代码并增加日志信息来实现;如果是访问外设相关的指令,则根据预先得到的Android设备中外设的访问延迟分布数据,估计访问延迟,在延迟时间之后再返回能耗数据;
4)对每个线程标注其运行时间并迭代处理步骤3),直到每一轮迭代得到的能耗数据的差值小于设定的阈值时停止迭代,从而得到应用程序能耗预测结果。
2.如权利要求1所述的方法,其特征在于:步骤1)所述全***模拟软件为Gem5。
3.如权利要求1所述的方法,其特征在于:步骤2)所述***状态包括CPU寄存器的值、内存块。
4.如权利要求1所述的方法,其特征在于:步骤3)通过软件LoadRunner来重现所述操作序列的执行顺序。
5.如权利要求1所述的方法,其特征在于:步骤3)所述运行时间和所述能耗通过McPAT进行计算,通过Gem5模拟器的日志输出CPU以及Cache部分的能耗。
6.如权利要求1所述的方法,其特征在于:步骤4)所述设定的阈值为1焦耳。
CN201611012038.6A 2016-11-17 2016-11-17 一种Android设备上应用程序能耗预测方法 Active CN106610873B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611012038.6A CN106610873B (zh) 2016-11-17 2016-11-17 一种Android设备上应用程序能耗预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611012038.6A CN106610873B (zh) 2016-11-17 2016-11-17 一种Android设备上应用程序能耗预测方法

Publications (2)

Publication Number Publication Date
CN106610873A CN106610873A (zh) 2017-05-03
CN106610873B true CN106610873B (zh) 2020-07-24

Family

ID=58635914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611012038.6A Active CN106610873B (zh) 2016-11-17 2016-11-17 一种Android设备上应用程序能耗预测方法

Country Status (1)

Country Link
CN (1) CN106610873B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259561B (zh) * 2020-02-07 2022-08-26 华侨大学 一种基于时间间隔的温度感知的处理器能耗计算方法
CN115576856B (zh) * 2022-12-08 2023-04-11 浪潮通信信息***有限公司 能耗评估方法及装置
CN116822340B (zh) * 2023-06-12 2024-05-28 中科软件测评(广州)有限公司 一种基于软件耗能的终端电量优化方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265847A (ja) * 2000-03-22 2001-09-28 Nec Corp 消費電力予測装置およびその予測方法
CN102231119A (zh) * 2010-07-29 2011-11-02 北京大学 一种面向嵌入式***的全***能耗模拟方法及***
CN102638603B (zh) * 2011-02-11 2015-09-23 上海闻泰电子科技有限公司 一种通过模拟按键自动测试手机功耗的方法
CN104915297B (zh) * 2015-07-08 2018-01-16 上海斐讯数据通信技术有限公司 一种android设备的APP耗电量的自动化测试方法
CN105446854B (zh) * 2015-11-09 2018-03-20 小米科技有限责任公司 功耗检测方法、***及终端

Also Published As

Publication number Publication date
CN106610873A (zh) 2017-05-03

Similar Documents

Publication Publication Date Title
Li et al. Calculating source line level energy information for android applications
US7844928B2 (en) Method and apparatus for evaluating integrated circuit design performance using enhanced basic block vectors that include data dependent information
US8010334B2 (en) Method and apparatus for evaluating integrated circuit design performance using basic block vectors, cycles per instruction (CPI) information and microarchitecture dependent information
Pathania et al. HotSniper: Sniper-based toolchain for many-core thermal simulations in open systems
Hu et al. Lightweight energy consumption analysis and prediction for android applications
EP3391224B1 (en) Method and apparatus for data mining from core traces
CN106610873B (zh) 一种Android设备上应用程序能耗预测方法
Shahid et al. Additivity: A selection criterion for performance events for reliable energy predictive modeling
Lewis et al. Runtime energy consumption estimation for server workloads based on chaotic time-series approximation
LeBeane et al. Watt watcher: fine-grained power estimation for emerging workloads
Dey et al. Emprof: Memory profiling via em-emanation in iot and hand-held devices
CN107436834A (zh) 估算处理器功耗的方法、产品及***
Tu et al. Performance and power profiling for emulated android systems
Manotas et al. Investigating the impacts of web servers on web application energy usage
Dousti et al. ThermTap: An online power analyzer and thermal simulator for Android devices
Ghaleb Software energy measurement at different levels of granularity
Stanisic et al. Modeling and simulation of a dynamic task-based runtime system for heterogeneous multi-core architectures
Lu et al. Lightweight method-level energy consumption estimation for android applications
Myasnikov et al. Energy consumption measurement frameworks for android os: A systematic literature review
Mittal et al. Integrating sampling approach with full system simulation: Bringing together the best of both
Engin Energy efficiency of embedded controllers
Zhao et al. Host-compiled reliability modeling for fast estimation of architectural vulnerabilities
Reischer et al. Bio-algebras
Rieger et al. Evaluating techniques for method-exact energy measurements: Towards a framework for platform-independent code-level energy measurements
Schmitt et al. Emulating the Power Consumption Behavior of Server Workloads using CPU Performance Counters

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant