CN106610873B - 一种Android设备上应用程序能耗预测方法 - Google Patents
一种Android设备上应用程序能耗预测方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/006—Identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring 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/3062—Monitoring 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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系统的设备上的应用程序使用电能多少的评估预测方法,具体涉及一种基于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焦耳。
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)
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)
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 | 小米科技有限责任公司 | 功耗检测方法、系统及终端 |
-
2016
- 2016-11-17 CN CN201611012038.6A patent/CN106610873B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106610873A (zh) | 2017-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
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 | |
EP3391224B1 (en) | Method and apparatus for data mining from core traces | |
Hu et al. | Lightweight energy consumption analysis and prediction for android applications | |
CN106610873B (zh) | 一种Android设备上应用程序能耗预测方法 | |
Shahid et al. | Additivity: A selection criterion for performance events for reliable energy predictive modeling | |
LeBeane et al. | Watt watcher: fine-grained power estimation for emerging workloads | |
Lewis et al. | Runtime energy consumption estimation for server workloads based on chaotic time-series approximation | |
Dey et al. | Emprof: Memory profiling via em-emanation in iot and hand-held devices | |
CN107436834A (zh) | 估算处理器功耗的方法、产品及系统 | |
Ghaleb | Software energy measurement at different levels of granularity | |
Tu et al. | Performance and power profiling for emulated android systems | |
Dousti et al. | ThermTap: An online power analyzer and thermal simulator for Android devices | |
Manotas et al. | Investigating the impacts of web servers on web application energy usage | |
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 | |
Hung et al. | System-wide profiling and optimization with virtual machines | |
Abdelhafez et al. | Characterizing variability in heterogeneous edge systems: A methodology & case study | |
Myasnikov et al. | Energy consumption measurement frameworks for android os: A systematic literature review | |
Uzelac et al. | Using branch predictors and variable encoding for on-the-fly program tracing | |
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 |
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 |