基于游戏负载预测的android系统设备功耗优化方法

文档序号:9326457阅读:297来源:国知局
基于游戏负载预测的android系统设备功耗优化方法
【技术领域】
[0001] 本发明属于android智能系统设备功耗优化技术领域,具体的是一种基于游戏负 载预测的android系统设备功耗优化方法。
【背景技术】
[0002] 随着手持式移动设备爆发式的增长以及应用程序功能多样化的发展,功耗、性能 矛盾愈加突出。为了缓解该问题,以往解决方案往往建立在对系统或者任务行为分析的基 础上,但是不同的应用场景乃至使用人群都会对系统或任务行为产生很大的影响,因此,充 分挖掘应用场景的信息对指导系统进行资源优化、降低功耗起着重要的作用。
[0003] 在三星Galaxy S5中,当电量低于10%时屏幕将变为黑白并且关闭所有非必 须服务;更重要的是引入了针对不同场景的功耗优化机制,这些机制都来自于第三方 LucidLogix公司的节能技术PowerExtend。其第一部分是针对导航技术优化的,称之为 NavExtend,可以在使用GPS导航的场景下延长电池续航能力25%,在导航路线确定之后, 导航行为是可预知的,可以按需调节GPS导航所需要的图形负载,对于简单画面,可以降低 帧刷新频率;第二种优化技术为WebExtend,在上网时同样可以延长续航时间25%,其原理 与前者类似,也是智能判断浏览器的图形负载,按需调整资源;最后则是针对游戏等高负载 应用专门设计的GameExtend,可延长电池续航50%。
[0004] 在手机、平板电脑等电子产品中,游戏已经成为人们日常生活中的一部分,但是 游戏开发者往往在追求游戏视觉效果和用户体验时,不会考虑到对手机平台上软硬件资 源的合理分配,盲目提高帧率。在IBM Notebook平台运行测试游戏Quake II (默认开 启软渲染),在CPU 599MHz和1298MHz频率下,其帧率如图1所示(X轴为时间轴,Y轴 为frames/sec),运行在1298MHz时游戏的帧率最高可达70fps以上,当运行在599MHz时 游戏的帧率可能最低达到l〇fps,游戏负载波动较大,对资源需求变化亦较大,但是研究 [2]表明,在帧率达到某临界值后,提高帧率将无法改善用户体验,这就会造成资源过度 索取,从而使得智能手机平台上的功耗/性能矛盾愈加凸显。国内外科研工作者针对特 定应用场景的DVFS研究相对较多,但是此项技术应用比较成熟的是在视频播放解码领域 [Dietrich B,Chakraborty S. Managing power for closed-source android os games by lightweight graphics instrumentation[C]//Network and Systems Support for Games(NetGames), 2012 Ilth Annual Workshop on. IEEE, 2012:1-3·],而针对游戏场景的 DVFS研究则相对匮乏且并未取得较大突破。针对游戏应用的DVFS研究从研究平台上主要 分为PC端和移动端,从研究对象上来说分为开源游戏和闭源游戏。
[0005] 已有针对游戏应用的 DVFS 研究[Gu Y, Chakraborty S, Ooi W T. Games are up for DVFS[C]//Proceedings of the 43rd annual Design Automation Conference. ACM, 2006:598-603.]多面向的是PC平台,集中于Windows平台上开源游戏的研究,游戏源 代码的获得和研读困难大,并且从实用性角度来看,研究意义不大。
[0006] 对于开源游戏,因为源代码可得,所以研究的重点放在了对一帧代码中所体现的 游戏画面帧中的结构特征的提取上,研究取得的成果对于指导游戏开发人员在节能意识下 进行开发有着不可替代的作用。但是对于作为第三方,想要通过分析游戏行为在操作系统 一级找出一种针对闭源游戏降低功耗的普适方法的研究者来说,其研究方法无从借鉴。本 发明由此而来。

【发明内容】

[0007] 本发明的目的是提供一种基于游戏负载预测的android系统设备功耗优化方法, 解决了现有技术中android系统设备游戏功耗普遍高,降低了设备电池可用性等技术问 题。本发明基于游戏负载预测的android系统设备功耗优化方法可以根据不同的场景和用 户在相应场景下对游戏性能的要求,合理分配系统资源以达到降低功耗的目的。
[0008] 为了解决现有技术中的这些问题,本发明提供的技术方案如下:
[0009] 一种基于游戏负载预测的降低android系统设备功耗的方法,其特征在于所述方 法包括以下步骤:
[0010] (1)获取游戏运行各个阶段android系统设备的处理器负载,根据处理器负载预 测游戏运行下一帧的处理器负载需求;
[0011] (2)获取android系统设备的当前游戏的访存特性、当前游戏运行的纹理特性、游 戏与用户的交互度信息,判断当前游戏运行的功能场景;
[0012] (3)根据当前游戏运行的功能场景按照预定的DVFS调频模块对CPU和GPU进行频 率和电压调整。
[0013] 优选的技术方案中,所述方法步骤(1)通过获取游戏进程当前和上一次调用底层 EGL中的eglSwapBuffersO函数的执行时间差,量化确定CPU完成当前帧所有计算和发送 渲染调用给GPU的总负载值。
[0014] 优选的技术方案中,所述方法步骤(1)通过获取游戏进程纹理图片贴图的次数和 当前和上一次纹理坐标映射的时间差,量化确定GPU负载值。
[0015] 优选的技术方案中,所述方法步骤(2)中游戏运行的功能场景区分为游戏加载场 景、游戏进行场景、游戏退出场景、游戏菜单场景和游戏交互场景。
[0016] 优选的技术方案中,所述方法步骤(2)中通过android系统设备内核中内存分配 函数统计一段时间内存分配请求数量识别游戏加载场景和游戏退出场景:
[0017] 1)当统计周期内应用程序对内存的分配请求量超过或者等于预定分配阈值,且释 放内存量低于预定释放阈值,则判定游戏运行的当前功能场景为游戏加载场景;
[0018] 2)当统计周期内应用程序对内存的分配请求量低于预定分配阈值,且释放内存量 超过或者等于预定释放阈值,则判定游戏运行的当前功能场景为游戏退出场景;
[0019] 3)其余情形,不进行判定。
[0020] 优选的技术方案中,所述方法步骤(2)中通过在统计时间内统计游戏运行时游戏 纹理贴图数量级和连续几帧纹理数量前后差值的累加值来判定游戏运行的当前功能场景 是游戏菜单场景还是游戏进行场景:
[0021] I)当在统计时间内统计游戏纹理贴图数量少于预定纹理数量级,且在统计时间内 连续几帧纹理数量变化速度低于预定变化速度的场景,则判定游戏运行的当前功能场景为 游戏菜单场景;
[0022] II)其他情形均判定游戏运行的当前功能场景为非游戏菜单场景。
[0023] 优选的技术方案中,所述方法步骤(2)中用户交互度信息通过android系统设备 的消息机制来实现,其中通过消息处理时间占空比
作为衡量用户交互时任 务重要性的指标;式中cpu_time表示android系统每两次调用DVFS调频算法对CPU进行 频率调节的时间间隔内CPU用于处理任务的时间;mSg_time表示系统每两次调用调频算法 对CPU进行频率调节的时间间隔内CPU用于主线程处理消息的时间;当P大于或者等于预 定值时,则判断游戏运行的当前功能场景为游戏交互场景;否则判断游戏运行的当前功能 场景不为游戏交互场景。
[0024] 优选的技术方案中,所述方法步骤(3)中DVFS调频模块采用ondemand算法按照 如下步骤进行调频:
[0025] A)当CPU利用率大于90%,将CPU频率提升到可支持的最大频率;否则进行B);
[0026] B)判断CPU利用率是否在70~80 %之间,如果是,则继续循环到下一计算调频周 期;否则进行步骤C);
[0027] C)判断CPU当前频率是否小于当前可支持的最小频率;如果是,将当前频率提升 到可支持的最小频率;否则降低当前频率,继续循环到下一计算调频周期。
[0028] 优选的技术方案中,所述方法步骤(A)中当CPU利用率大于90%时,如果获取的当 前游戏场景为游戏交互场景或者游戏进行场景,则将CPU频率提升到可支持的最大频率; 否则判断当前CPU频率是
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1