Android 进程内存使用与电池消耗之间的相关性

2023-11-23

我终于找到了一种获取各个进程的 TotalPss 的方法。现在我关心的是,如何找到每个android进程的电池消耗,如果没有直接的方法找到它,每个进程的内存使用量和电池消耗之间是否有任何相关性?我可以为此研究任何研究论文吗?


是的,内存使用量(内存访问次数)与能耗之间存在正相关关系。换句话说,访问的内存越多,消耗的能量就越多。

然而,能源消耗很大程度上取决于应用程序通过 Android 平台 API、虚拟机执行时与之交互的其他硬件组件(例如 CPU、显示器、无线电、GPS 等)的能源使用。和操作系统。这是因为内存不是在真空中使用的,研究表明,与执行应用程序时使用的其他硬件组件相比,RAM 消耗的能量相对较少。换句话说,如果发生内存访问,那是因为 CPU 正在执行,这比 CPU 处于空闲状态时消耗更多的能量。

例如,请考虑以下基于 HTC Dream (G1) 和 Nexus One 设备测试的引用,来自:

[29] Aaron Carroll 和 Gernot Heiser,“智能手机功耗分析”,在 USENIX 年度技术会议的 2010 USENIX 会议记录上发表,马萨诸塞州波士顿,2010 年。http://www.nicta.com.au/pub?doc=3587

“RAM、音频和闪存子系统始终表现出最低的功耗。虽然我们的微基准测试表明 SD 卡的峰值功率可能很大(50 mW),但实际上利用率足够低,因此平均而言可以忽略不计。功耗。即使是视频播放(移动设备数据密集型用途之一),SD 功耗也远低于总功耗的 1%。RAM 具有类似的特性;微基准测试表明,在某些工作负载中,RAM 功耗可能超过 CPU 功耗,但在实际情况下,CPU功耗比RAM功耗高出两倍或更多。音频的静态功耗大部分在28-34 mW之间。总体而言,RAM、音频和SD对音频功耗影响不大。设备,因此几乎没有能源优化的潜力。”

正如这篇论文和其他论文所说(请参阅本文末尾的完整参考列表),能耗取决于应用程序用例场景,以及您的应用程序和其他应用程序执行期间使用其他硬件组件的频率和持续时间。在应用程序执行时进行上下文切换的应用程序。

纯粹通过软件测量能耗是非常困难的。 Kristopher 提到的 Epof 论文可能是我在该领域看到的最新、最完整的成果:

[38] Abhinav Pathak、Y. Charlie Hu 和 Ming Zhu (2012),“使用 Eprof 对智能手机进行细粒度能源核算”,EuroSys'12,瑞士伯尔尼,2012 年 4 月 10-13 日。http://research.microsoft.com/en-us/people/mzh/eurosys-2012.pdf

截至 2012 年初,作者计划在今年晚些时候以开源方式发布他们的软件,但我不知道目前情况如何。

另一篇要检查的论文是产生Google Play 上的 PowerTutor 应用,这是密歇根大学和谷歌之间的合作:

[34] 张立德、Birjodh Tiwana、钱志云、王兆光、罗伯特·P.迪克、卓庆·莫利·毛和雷·杨,“智能手机的准确在线功率估计和基于自动电池行为的功率模型生成”,发表在《Proceedings of the Proceedings》上第八届 IEEE/ACM/IFIP 国际硬件/软件协同设计和系统综合会议,美国亚利桑那州斯科茨代尔,2010 年。http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/pubs/archive/39990.pdf

他们仅使用软件进行能源使用建模,但为了产生准确的结果,必须首先使用不仅仅是软件的方式在特定设备上开发模型。

如果您询问进程消耗的内存量与能源使用之间的相关性,我不记得曾遇到过专门测量这一点的论文。然而,通常我会认为具有较大内存消耗的进程也需要更多的CPU周期来执行以利用该内存,这将导致更大的能耗。

我包裹起来我的论文今年早些时候,我了解了智能移动软件如何为基于位置的服务节省能源,并阅读了一系列有关移动能源消耗和过程分析的论文。以下是我引用的参考文献,它们还讨论了移动应用程序中的一般能源消耗(如果它们有用)。

[26] Jeff Sharkley (2009),“Coding for Life——Battery Life, That Is”,Google I/O 2009,加利福尼亚州旧金山,2009 年 5 月 27 日。http://www.google.com/events/io/2009/sessions/CodingLifeBatteryLife.html

[27] Robert Mayo 和 Parthasarathy Ranganathan,“移动设备中的能耗:为什么未来系统需要要求 - 感知能源缩减 - 功耗感知计算机系统”。卷。 3164,B. Falsafi 和 T. VijayKumar,编辑,编辑:施普林格柏林/海德堡,2005 年,第 301-463 页。Link

[28] Gerard Bosch Creus 和 Mika Kuulusa,通过内置功率分析优化移动软件:Springer,2007 年。Link

[29] Aaron Carroll 和 Gernot Heiser,“智能手机功耗分析”,在 USENIX 年度技术会议的 2010 USENIX 会议记录上发表,马萨诸塞州波士顿,2010 年。http://www.nicta.com.au/pub?doc=3587

[30] Aqeel Mahesri 和 Vibhore Vardhan,“现代笔记本电脑的功耗细分 - 功率感知计算机系统”。卷。 3471,B. Falsafi 和 T. VijayKumar,编辑,编辑:施普林格柏林/海德堡,2005 年,第 165-180 页。Link

[31] Rajesh Palit、Ajit Singh 和 Kshirasagar Naik,“对便携式无线设备上应用的能源成本进行建模”,在英国温哥华举行的第 11 届无线和移动系统建模、分析和仿真国际研讨会论文集上发表加拿大哥伦比亚,2008 年。http://dl.acm.org/itation.cfm?id=1454562

[32] T. Farrell、R. Lange 和 K. Rothermel (2007),“通过早期基于距离的报告对移动对象进行节能跟踪”,载于《移动和普适系统:网络与服务》,2007 年。MobiQuitous 2007 年。第四届国际年会,第 1-8 页,2007 年 8 月 6-10 日。Link

[34] 张立德、Birjodh Tiwana、钱志云、王兆光、罗伯特·P.迪克、卓庆·莫利·毛和雷·杨,“智能手机的准确在线功率估计和基于自动电池行为的功率模型生成”,发表在《Proceedings of the Proceedings》上第八届 IEEE/ACM/IFIP 国际硬件/软件协同设计和系统综合会议,美国亚利桑那州斯科茨代尔,2010 年。http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/pubs/archive/39990.pdf

[35] J. Eberle 和 G. P. Perrucci (2011),“用于最先进智能手机定位方法的能量测量活动”,消费者通信和网络会议 (CCNC),2011 IEEE,第 937-941 页, 2011 年 1 月 9 日至 12 日。Link

[36] M. Kjaergaard (2012),“最大限度地减少移动电话上基于位置的服务的功耗”,普适计算,IEEE,卷。 11 页 67-73。Link

[38] Abhinav Pathak、Y. Charlie Hu 和 Ming Zhu (2012),“使用 Eprof 对智能手机进行细粒度能源核算”,EuroSys'12,瑞士伯尔尼,2012 年 4 月 10-13 日。http://research.microsoft.com/en-us/people/mzh/eurosys-2012.pdf

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 进程内存使用与电池消耗之间的相关性 的相关文章

随机推荐

  • 当 python 文件必须使用 #!/bin/env python 时处理多个 python 版本

    我有这个问题 System A运行 Ubuntu 并需要Python 2 6对于一堆不同的事情 我安装了Python 2 7分别于System A System B has Python 2 7原生地 我有一个 python 脚本BLAH其
  • OSGI 缺少需求错误

    我是 OSGI 新手 我正在尝试弄清楚如何解决如下错误 org osgi framework BundleException 捆绑包 org foo serviceBundle 253 中未解决的约束 无法解析 253 0 缺少需求 253
  • 如何阻止 SwiftUI 选择器对其可见区域之外的触摸做出反应?

    我在视图中有一个选择器 我希望将其限制为定义的高度和宽度 虽然下面的代码在视觉上实现了这一点 但选择器响应其区域之外的点击操作 在某些情况下 响应点击附近的按钮 就像我点击将选择器滚动到其值的开头或结尾一样 按钮不会响应点击 选择器会响应
  • MultinomialNB 错误:“未知标签类型”

    我有两个 numpy 数组 X train 和 Y train 其中第一个维度 700 1000 由值 0 1 2 3 4 和 10 填充 第二个维度 700 由值填充值 新鲜 或 腐烂 因为我正在使用烂番茄的 API 由于某种原因 当我执
  • Entity Framework 7 中表和属性的名称不区分大小写

    我使用 Entity Framework 7 和 Npgsql 适配器 EF生成的Sql看起来像 SELECT r Id r Name FROM public Role AS r 它在 Postgres 中不起作用 因为区分大小写的策略 为
  • JavaScript 函数导入不起作用

    我正在尝试从单独的 js 文件导入函数 当我声明导入命令时 页面不执行代码 但是 当我删除导入命令并执行一个简单的警报 Hello 时 页面上会弹出该内容 项目结构 Todo 应用程序 js 两个 js main js index html
  • 有没有办法在 Javascript 中获取所有事件侦听器绑定?

    我正在寻找一种我可以的方法列出所有事件侦听器绑定是在网站上用 JS 或其他脚本 制作的 主要是我想找出双重绑定 出于调试原因 但我想它还有其他问题 杰出的将是浏览器的插件 您可以在网站上看到哪些元素具有哪些类型eventlisteners边
  • 使用 data.table 进行内存分析

    在包含调用的 R 代码中分析内存的正确方法是什么data table功能 假设我想确定表达式期间的最大内存使用量 该参考文献表明Rprofmem可能不是正确的选择 https cran r project org web packages
  • 组合向量和 data.frame 匹配列值和向量值

    I have vetor lt c 1 2 3 data lt data frame id c a b a c a 我需要一个将每个向量值与特定 id 相匹配的 data frame 输出 结果 id vector1 1 a 1 2 b 2
  • CGRect 和 CGPath 的交集

    有没有一种有效的方法来检测 CGPath 和 CGRect 是否相交 我考虑过循环遍历 CGRect 内的每个点 如下所示 for CGPoint point in rect if CGPathContainsPoint path nil
  • C# 5 的“即发即忘”中的异常处理(在 .net 4.5 中)

    考虑以下 一劳永逸 用例 调用者从我的方法请求一些数据 我的方法检查缓存以查看数据是否已经存在 如果不是 它会从源中获取并缓存它 调用者在获取结果之前不需要等待缓存发生 并且如果缓存失败 该方法不应阻止调用者获取结果 我今天所拥有的 看起来
  • 为什么我的 Python 代码为列表中的所有元素提取相同的数据?

    My project consists of making a competitive watch table for hotel rates for an agency It is a painful action that I want
  • 如何查找给定列是否存在唯一键约束

    我正在编写一个 perl 脚本 我需要在其中运行更新查询 但我需要检查 update sql 命令是否不违反唯一键约束 所以如果我有一张桌子tb C1 C2 C3 我的更新查询如下 update tb set C1 b1 where C2
  • 如何在HTML中正确引用本地资源?

    事实证明 引用本地资源可能是一些人的摩擦点 我正在寻找本地资源引用的规范答案及其含义 拿这些例子来说 这些参考路径有什么区别呢 img src myfile png 没有前导斜杠 img src myfile png 带有前导斜杠 img
  • 为什么 n+++n 有效而 n++++n 无效?

    在Java中 表达式 n n 似乎评估相当于 n n 尽管事实上 n是一个有效的一元运算符 其优先级高于算术运算符 运算符在n n 因此编译器似乎假设该运算符不能是一元运算符并解析该表达式 然而 表达式 n n 无法编译 即使有一个有效的可
  • Facebook在iOS6.0中使用SLRequest上传照片无论如何失败

    这是我的 Objc 代码 ACAccountStore facebookaccount ACAccountStore alloc init ACAccountType facebookaccountType facebookaccount
  • 电子邮件附件

    我希望能够附加我生成的文件 即时 我不想将文件保存在我的服务器上 并通过电子邮件发送出去 我已完成所有文本 但不知道如何使用 sendmail 将文件附加到电子邮件 谢谢 See http railscasts com episodes 2
  • Android: onPause() 是否保证在 finish() 之后调用?

    在任何地方都找不到对此问题的可靠答案 我有一个方法 其中调用 finish 然后调用 onPause onPause 是否保证在调用 finish 后被调用 Android一般会调用onPause 如果你打电话finish 在您的 Acti
  • SSL:使用 Python3 的 CERTIFICATE_VERIFY_FAILED

    如果这是一个愚蠢的问题 我深表歉意 但我一直在尝试自学如何使用 BeautifulSoup 以便我可以创建一些项目 我按照此链接作为教程 https www youtube com watch v 5GzVNi0oTxQ 在遵循与他完全相同
  • Android 进程内存使用与电池消耗之间的相关性

    我终于找到了一种获取各个进程的 TotalPss 的方法 现在我关心的是 如何找到每个android进程的电池消耗 如果没有直接的方法找到它 每个进程的内存使用量和电池消耗之间是否有任何相关性 我可以为此研究任何研究论文吗 是的 内存使用量