一种基于用户交互历史信息的cpu动态调频方法

文档序号:9326459阅读:549来源:国知局
一种基于用户交互历史信息的cpu动态调频方法
【技术领域】
[0001] 本发明涉及CPU动态调频领域,尤其涉及一种基于用户交互历史信息的CPU动态 调频方法。
【背景技术】
[0002] Android系统是基于Linux内核的,Linux中支持CPU变频技术,并且提供多种调 频模式。变频技术是指CPU本身支持在多种不同的频率下运行,系统在运行过程中可以根 据随时可能发生变化的系统负载情况动态在这些不同的运行频率之间切换,从而达到对性 能和能耗的权衡。Linux -般支持这几种常见的CPU调节模式:Performance, Ondemand, P owersave, Conservative, Userspace, Interactive0Performance :高性會泛模式,以最高步页率 运行,即使系统负载非常低,CPU也运行在最高频率。性能很好,功耗高。Ondemand :按需模 式,按需调节CPU频率,手机一般默认使用的是Ondemand governor即按需调节,在该模式 下,系统会定期检查CPU使用率,当CPU使用率超过某个阈值up_threShold的时候就跳到 手机的最高频率去执行。不操作手机时控制在较低频率,滑屏或进入应用时会迅速提升至 最高频率,当空闲时又会迅速降低频率,性能较稳定,但因频率变化幅度过大,省电方面只 有一般水平。是一种电池和性能之间趋向平衡的默认模式。Powersave:省电模式,以最低 频率运行,日常极少使用,除非配合setCPU情景模式,关屏睡眠时使用此模式,省电但系统 响应速度慢。Conservative :保守模式,类似于Ondemand,但调整相对较缓,规则是"慢升快 降",注重省电,当有高需求时逐渐提高频率。Userspace :用户模式,系统将变频策略的决 策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节CPU运行频率使 用。Interactive :交互模式,和Ondemand模式相似,规则是"快升慢降",注重响应速度、性 能,当有高需求时迅速跳到高频率,当低需求时逐渐降低频率,相比Ondemand费电,性能略 好。
[0003] 现在的Android智能手机默认的调节模式是Ondemand或者Interactive模式,这 两种调频模式都偏向于高频执行,在用户交互过程中点击或者滑动,执行应用过程都会触 发CPU迅速跳到最高频率执行,这种高频往往会导致高能耗,但许多场景并不是需要最高 频率去执行,这样会导致能耗的浪费;另外Ondemand governor只考虑了 CPU的使用率,而 300MHz下40 %的CPU使用率与600MHz下的40 %的CPU使用率代表完全不一样的计算量。 在用户交互场景中,用户操作通常是间歇性的,点击或者滑屏后,浏览一会然后再进行下一 次交互动作。在现有的Ondemand模式下,一旦用户开始与手机交互CPU会变得繁忙从而跳 到最高频率执行,没有考虑到交互场景的情况,并不是每一次交互都需要最高频率来满足 性能需求,不同的交互场景对CPU资源的消耗需求也不同。Ondemand governor这种CPU 调控模式在能耗方面表现不理想。

【发明内容】

[0004] 为解决现有技术中存在高性能伴随高能耗的问题,本发明提供一种基于用户交互 历史信息的CPU动态调频方法。
[0005] 本发明基于用户交互历史信息的CPU动态调频方法包括以下步骤:S11 :开始; S12 :监听当前应用的交互状态;S13 :查找历史交互信息表,确认此次交互是否发生过,如 果是,执行步骤S14,如果否,执行步骤S15 ;S14 :获取历史交互信息表中同样的交互最大归 一化CPU使用率,根据最大归一化CPU使用率计算目标频率,并根据目标频率调节CPU频 率,然后执行获取此次交互归一化CPU使用率并保存步骤S16,所述调节CPU频率是指CPU 在最低频率与目标频率之间进行动态调频;S15 :设置CPU频率调节模式为系统默认情况, 然后同时执行获取此次交互归一化CPU使用率并保存步骤S16和步骤S17 ;步骤S16的执 行顺序为:S161 :采集CPU信息,计算CPU使用率和权重频率;S162 :CPU归一化负载计算; S163 :将计算出来的归一化CPU使用率最大值存入历史交互信息表,然后执行步骤S18 ; S17:采集用户交互信息,包括交互动作信息和该动作所在应用界面系信息,将所述用户交 互信息存入历史交互信息表,然后执行步骤S18 ;S18 :结束。本方法采用动态调频的方式, 既满足性能需求同时降低能量的消耗。
[0006] 本发明作进一步改进,所述交互由用户输入动作开始,至该动作引起的屏幕刷新 完成结束。
[0007] 本发明作进一步改进,步骤S14中,所述历史交互信息表中最大归一化CPU使用率 为u,此次交互适用频率f。= f _Xu,其中f_为设备支持的最高频率,目标频率值f为设 备CPU所支持的一系列可用频率中不小于且最接近f。的频率值,然后将最大调节频率设为 目标频率值f,通过调节最大调节频率,CPU只能在最低频率和最大调节频率之间执行,综 合考虑用户交互的场景及历史CPU资源使用情况,以相对低的可接受的频率运行而不牺牲 用户体验。
[0008] 本发明作进一步改进,步骤S15中,CPU频率调节模式为系统默认情况下,CPU最大 调节频率为设备CPU支持的最高频率,第一次执行时采用默认情况,但是执行过程中采集 CHJ信息和用户交互信息作为下次CPU频率调节的基础。
[0009] 本发明作进一步改进,步骤S16中,交互过程中每隔时间t采集一次CPU信息,计 算该时间段CPU使用率和权重频率,然后进行归一化负载计算,算出该时间段归一化CPU使 用率。一个交互采集多次数据,使计算出的CPU数据更加准确和稳定。
[0010] 本发明作进一步改进,步骤S161中,在时间点1读取内核系统文件获取CPU运 行时间及频率,记录总的CPU时间totall和空闲时间idlel及各个频率的运行时间,间 隔时间t,在时间点2再次读取内核系统文件获取CPU运行时间及频率,记录总的CPU时 间total2、空闲时间idle2及各个频率运行时间,CPU使用率0?1]1183 86=1-(丨(1162-idlel)/(total2 - totall),权重频率的计算方法为:时间点2米集各个频率运行时间减去 时间点1采集的相应频率的运行时间,得出各个频率在时间t内的运行时间,算出各个频率 在时间t内占的时间比,各个频率乘以相应的时间比,然后相加得出权重频率。权重频率和 CPU使用率是计算归一化CPU使用率的两个重要参数。
[0011] 本发明作进一步改进,步骤S17中,采集用户交互信息是通过实时监控并收集用 户交互信息模块来完成,所述交互动作信息包括点击、长按和滑动,所述应用界面信息为 Activity 信息。
[0012] 本发明作进一步改进,实时监控并收集用户交互信息模块通过动态插粧方法来获 取用户交互信息。
[0013] 本发明作进一步改进,所述动态插粧方法是通过插粧框架xposed和插粧代码实 现。
[0014] 本发明作进一步改进,所述动态插粧方法包括以下步骤:前台应用执行,等待用户 输入动作;用户的操作动作触发系统框架层的API执行;插粧框架xposed对系统框架层进 行动态插粧拦截相应API并在该API执行前或者执行后插入插粧代码;获取交互动作信息 及应用界面信息。通过插粧框架xposed对相应API插入插粧代码,即时获取用户交互信息。
[0015] 与现有技术相比,本发明的有益效果是:利用Android设备默认Ondemand governor模式,通过调整CPU最大调节频率来限制用户交互过程中不必要的最高频率执 行;借助用户交互的历史信息记录能够满足用户交互过程的性能需求同时降低能量的消 耗;另外,将采集的CPU使用率转换为归一化的使用率能更好的衡量任务的繁重程度。通过 综合
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1