CN113849284A - 任务运行方法、装置、存储介质以及终端 - Google Patents

任务运行方法、装置、存储介质以及终端 Download PDF

Info

Publication number
CN113849284A
CN113849284A CN202110957428.5A CN202110957428A CN113849284A CN 113849284 A CN113849284 A CN 113849284A CN 202110957428 A CN202110957428 A CN 202110957428A CN 113849284 A CN113849284 A CN 113849284A
Authority
CN
China
Prior art keywords
task
processor
idle
time length
tasks
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.)
Pending
Application number
CN202110957428.5A
Other languages
English (en)
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.)
Hangzhou Douku Software Technology Co Ltd
Original Assignee
Hangzhou Douku Software Technology Co Ltd
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 Hangzhou Douku Software Technology Co Ltd filed Critical Hangzhou Douku Software Technology Co Ltd
Priority to CN202110957428.5A priority Critical patent/CN113849284A/zh
Publication of CN113849284A publication Critical patent/CN113849284A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)

Abstract

本申请实施例公开了一种任务运行方法、装置、存储介质以及终端,所述方法包括:检测终端当前的工作温度,并确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比,确定各所述任务对应的初始运行时长,基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长,按照各所述任务对应的处理器运行时长和处理器空闲时长依次运行各所述任务。本申请可以让处理器在处理器运行时长内运行相应的任务,在处理器空闲时长内处于空闲状态,避免了相关技术中由于终端温度升高而限制处理器频率来达到降温目的,从而导致终端出现卡顿的情况,而本申请可以在缓解终端温度的同时,保证终端不卡顿。

Description

任务运行方法、装置、存储介质以及终端
技术领域
本申请涉及计算机技术领域,尤其涉及一种任务运行方法、装置、存储介质以及终端。
背景技术
随着智能终端设备的发展,智能终端设备的处理性能也在不断强大。强大的处理器可以给用户带来较好的性能体验,但是,在用户体验处理器较好的性能的同时,智能终端设备的功耗也越来越高,随即带来的发热问题,却是不容忽视的。
相关技术中,当智能终端设备发热时,通常会限制硬件资源的使用。比如,当中央处理器(central processing unit,简称CPU)的工作温度较高时,通常会通过降低CPU频率来降低功耗,从而可以降低CPU的工作温度,达到缓解智能终端设备发热的效果。而降低CPU频率,也会降低某些任务的运行效率,从而出现卡顿的情况。
发明内容
本申请实施例提供了一种任务运行方法、装置、计算机存储介质以及终端,可以在缓解终端发热的同时,避免终端出现卡顿的问题。所述技术方案如下:
第一方面,本申请实施例提供了一种任务运行方法,所述方法包括:
检测终端当前的工作温度,并确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比;
确定各所述任务对应的初始运行时长;
基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长;
按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务。
第二方面,本申请实施例提供了一种任务运行装置,所述装置包括:
第一确定模块,用于检测终端当前的工作温度,并确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比;
第二确定模块,用于确定各所述任务对应的初始运行时长;
第三计算模块,用于基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长;
第四运行模块,用于按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务。
第三方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供了一种终端,可包括:存储器和处理器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述存储器加载并执行上述的方法步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例的方案在执行时,检测终端当前的工作温度,并确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比,确定各所述任务对应的初始运行时长,基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长,按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务。本申请可以在终端当前所处的工作温度下,计算出针对处理器上至少一个任务对应的处理器运行时长和处理器空闲时长,可以让处理器在处理器运行时长内运行相应的任务,以及在处理器空闲时长内使得处理器处于空闲状态,避免了相关技术中由于终端温度升高而采取限制处理器频率的方式来达到降温的目的,从而导致终端出现卡顿的情况,而本申请可以在缓解终端温度的同时,保证终端不卡顿。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种任务运行方法的场景示意图;
图2是本申请实施例提供的一种任务运行方法的流程示意图;
图3是本申请实施例提供的另一种任务运行方法的流程示意图;
图4是本申请实施例提供的一种任务运行方法中的折线示意图;
图5是本申请实施例提供的又一种任务运行方法的流程示意图;
图6是本申请实施例提供的另一种任务运行方法中的折线示意图;
图7是本申请实施例提供的一种任务运行装置的结构示意图;
图8是本申请实施例提供的一种终端的结构示意图。
具体实施方式
为使得本申请实施例的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
相关技术中,当终端发热时,通常会限制硬件资源的使用。比如,当CPU的温度升高达到一定值时,某些厂商会采取降低CPU频率的方式,随着CPU频率的降低,使得CPU的功耗降低,进一步减少热量的产生,从而缓解终端的温度。
采取降低CPU频率的方式,可以带来的好处是降低终端的温度,但是,降低CPU频率,使得CPU在运行所有应用对应的任务时,都以降低后的频率来运行。而在运行某些需要较高处理速度的任务时,比如当前正在和用户交互的任务,就会出现卡顿的情况,给用户带来不好的体验。
下面结合具体的实施例对本申请进行详细说明。
请参见图1,为本申请实施例提供的一种任务运行方法的场景示意图。
如图1所示,图1包括用户和终端,终端可以是手机。
示例性的,图1中的用户在使用手机时,手机上可以同时运行应用1、应用2以及应用3等多个应用,本申请实施例中可以同时运行的应用数量并不局限于图1所示的数量。手机上同时应用多个应用时,当手机具备分屏模式并处于分屏模式下时,与用户同时进行交互的应用可以有多个;而当手机处于单屏模式下时,与用户进行交互的应用只有1个。
当多个应用在同时运行时,当前与用户正在交互的应用所对应的任务需要被CPU运行,而当前未与用户进行交互的应用所对应的任务也需要被CPU运行。当前未与用户进行交互的应用,比如某些聊天社交软件,是需要CPU实时地推送消息给用户。当前未与用户进行交互的应用,比如某些软件,不需要实时推送消息给用户的应用,可以周期性的获取更新信息,并将更新信息推送给用户,这类软件可以包括天气软件、音乐软件等,当然,这些应用也可以在未与用户进行交互的过程中,不向用户推送消息,可以在后台等待被用户唤起。
在下述方法实施例中,为了便于说明,仅以各步骤的执行主体为终端进行介绍说明。
请参见图2,在图1所示的场景示意图的基础上,为本申请实施例提供的一种任务运行方法的流程示意图。如图2所示,本申请实施例的所述方法可以包括以下步骤:
S201,检测终端当前的工作温度,并确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比。
其中,工作温度,在本申请实施例中指的是CPU的温度。
可选的,检测终端当前的工作温度,可以理解为,通过读取终端中内置的温度传感器的值,将读取到的值进行转换后可以得到CPU的温度,通常,可以在终端内部的不同部位安装温度传感器来测量各个硬件的温度。
其中,任务,指的是安卓中的任务(Task),通常,任务可以说是一组以栈的模式聚集在一起的Activity组件集合。这些Activity可以是来自同一个应用,也可以是来自不同的应用。在一个安卓应用中,一个Activity通常就是一个单独的屏幕,它可以显示一些控件,也可以监听并处理用户的事件,可以对用户的事件做出响应。一个Task中的Activity有潜在的前后关联,新加入的Activity,位于栈顶,而在栈顶的Activity,才会有机会与用户进行交互。而当栈顶的Activity完成使命退出的时候,Task会将其退栈,并让下一个将跑到栈顶的Activity来与用户进行交互,直至栈中再无更多Activity,Task结束。
其中,空闲占空比,指的是在初始运行时长内,处理器处于空闲状态的处理器空闲时长与处理器实际运行任务的处理器运行时长的百分比。初始运行时长,指的是,相关技术中,处理器运行一个任务所需的时长,这个时长可以由处理器的处理策略进行设定,具体处理策略可以根据实际应用进行确定,不同应用对应的任务可以设置相同的初始运行时长,不同应用对应的任务也可根据应用类型设置不同的初始运行时长,除此之外,这个时长也可以根据同源或者同类型任务的历史运行时长进行确定。
可选的,确定在工作温度下针对处理器上至少一个任务对应的空闲占空比,可以理解为,可以先确定终端当前所处的运行环境下,处理器上待运行的至少一个任务,然后再获取这些任务在工作温度下的占空比。处理器上待运行的至少一个任务,可以指当前与用户正在进行交互的任务,也可以指当前与用户并不存在交互、但是也是在运行的任务。获取处理器上待运行的至少一个任务后,可以按照这些任务对用户的重要程度进行分类,可以分为首要任务、前台任务、后台任务三种类型的任务。首要任务,可以指当前与用户正在交互的任务;前台任务,可以指被用户唤起后,当前与用户没有交互,同时也在运行,并且会实时向用户推送消息的任务;后台任务,可以指被用户唤起后,当前与用户没有交互,同时也在运行,并且不会实时向用户推送消息的任务。
在一种可行的实施方式中,可以预先设置处于不同工作温度的场景下,不同类型的任务与空闲占空比之间的对应关系,可以将对应关系存储在终端本地,当获取到任务并确定任务对应的任务类型后,从本地获取当前工作温度下,各任务类型所对应的空闲占空比,进而可以确定各任务的空闲占空比。
在一种可行的实施方式中,当确定任务对应的任务类型后,可以根据任务类型对这些任务进行分组,可以分别得到首要任务组、前台任务组以及后台任务组,首要任务组中所有任务是首要类型的任务,前台任务组中所有任务是前台类型的任务,后台任务组中所有任务是后台类型的任务。可以预先设置处于不同工作温度的场景下,不同任务组与空闲占空比之间的对应关系,可以将对应关系存储在终端本地,当获取到任务并确定任务所在的任务组后,从本地获取当前温度下,各任务组所对应的空闲占空比,进而可以确定各任务的空闲占空比。
S202,确定各所述任务对应的初始运行时长。
其中,初始运行时长,指的是,相关技术中,处理器运行一个任务所需的时长,这个时长可以由处理器的处理策略进行设定,具体处理策略可以根据实际应用进行确定,除此之外,这个时长也可以根据同源或者同类型任务的历史运行时长进行确定。
可选的,在本申请实施例中,各任务的初始运行时长可以是预先设定并存储在终端本地的,当确定各任务对应的空闲占空比之后,可以直接从本地获取各任务对应的初始运行时长。
在一种可行的实施方式中,设定各任务对应的初始运行时长,可以按照任务类型,包括首要任务、前台任务以及后台任务三种类型,分别设置每个任务类型所对应的初始运行时长,初始运行时长可任务终端的处理器基于处理器的处理策略所设置的一个原始的初始运行时长,终端可直接获取到基于处理器的处理策略所设置的一个原始的初始运行时长;进一步的:不同类型的任务对应的初始运行时长可以不同。当然,也可以获取每个任务类型的任务所对应的历史运行时长,将历史运行时长分别设定为各任务类型所对应的初始运行时长。因此,当确定各任务对应的任务类型后,可以依据任务类型查找各任务对应的初始运行时长。可以理解的是,不考虑任务类型,也可以对所有任务都设置相同的初始运行时长,初始运行时长可以是个固定值,当需要时直接获取即可。
在一种可行的实施方式中,设定各任务对应的初始运行时长,可以按照各任务所在的任务组,包括首要任务组、前台任务组以及后台任务组三种任务组,分别设置每个任务组所对应的初始运行时长,不同任务组的任务对应的初始运行时长可以不同。当然,也可以获取各任务组的任务所对应的历史运行时长,将历史运行时长分别设定为各任务组所对应的初始运行时长。因此,当确定各任务所在的任务组后,可以按照任务组查找各任务对应的初始运行时长。可以理解的是,不考虑任务组,也可以对所有任务都设置相同的初始运行时长,初始运行时长可以是个固定值,当需要时直接获取即可。
在一些实施方式中,终端在执行步骤S201“检测终端当前的工作温度,并确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比”的执行顺序和在执行步骤S202“确定各所述任务对应的初始运行时长”的执行顺序可以不分先后,也就说,终端可以先执行步骤S201再执行步骤S202;或,终端可以先执行步骤S202再执行步骤S201;或,终端可以同时执行步骤S201和执行步骤S202。具体可基于实际应用情况确定,此处不作具体限定。
S203,基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长。
其中,处理器运行时长:当任务被运行时,处理器运行该任务实际所需的时长。处理器空闲时长:当任务被运行时,在初始运行时长内,当处理器运行该任务实际所需的时长后,处于空闲状态的时长。
可选的,计算每个任务对应的初始运行时长和空闲占空比的乘积,可以得到每个任务对应的处理器空闲时长。进一步的,将每个任务对应的初始运行时长减去每个任务对应的处理器空闲时长,可以得到处理器运行时长。
S204,按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务。
可选的,本申请实施例中,针对处理器上至少一个任务可以排列在处理器对应的任务队列上,任务队列中包含处理器待运行的至少一个任务,各任务按照队列顺序等待着被处理器运行,队列上的至少一个任务遵循先进先出的队列顺序,当处理器在运行这些任务时,可以按照先进先出的队列顺序依次运行各任务。由于给各任务设定了处理器运行时长和处理器空闲时长,处理器运行时长和处理器空闲时长的总和等于初始运行时长,当处理器运行每个任务时,可以将处理器运行时长排在初始运行时长内的前半段时间,将处理器空闲时长排在初始运行时长内的后半段时间,那么处理器可以先在处理器运行时长内运行任务,然后再在处理器空闲时长内处于空闲状态。比如,以一个任务A为例进行说明,当处理器运行任务A时,可以在处理器运行时长内运行任务A,可以在处理器空闲时长内处于空闲状态而不去运行任务A。可以理解为,相关技术中,当处理器在运行任务A时,运行任务A就是处理器在初始运行时长内所要做的工作,那么在本申请实施例中,处理器就在处理器运行时长内工作,而在处理器空闲时长内休息。
本申请实施例的方案在执行时,检测终端当前的工作温度,确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比,确定各所述任务对应的初始运行时长,基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长,按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务。本申请可以在终端当前所处的工作温度下,计算出针对处理器上至少一个任务对应的处理器运行时长和处理器空闲时长,可以让处理器在处理器运行时长内运行相应的任务,以及在处理器空闲时长内使得处理器处于空闲状态,避免了相关技术中由于终端温度升高而采取限制处理器频率的方式来达到降温的目的,从而导致终端出现卡顿的情况,而本申请可以在缓解终端温度的同时,保证终端不卡顿。
请参见图3,在图1所示的场景示意图的基础上,为本申请实施例提供的一种任务运行方法的流程示意图。如图3所示,本申请实施例的所述方法可以包括以下步骤:
S301,检测终端当前的工作温度。
具体的,可参见图2中的S201,在此不再赘述。
S302,确定所述工作温度范围位于参考温度范围内,确定针对处理器上至少一个任务中各任务对应的任务类型,并确定所述工作温度所属的目标温度档位。
其中,参考温度范围,可以为预设的参考温度范围,参考温度范围内可以预设有不同温度档位。比如,处理器温度通常比室温高30度,参考温度范围可以设置为40度~60度,温度档位可以分为10档,可以分别为40度~42度,42度~44度,44度~46度,46度~48度......。在这些温度档位中的温度取值可以为,大于或者等于温度下限,小于温度上限。
其中,任务类型,可以包括首要任务、前台任务、后台任务三种类型。首要任务指的是,运行中,当前与用户正在进行交互的任务;前台任务指的是,运行中,在用户未与其进行交互时,向用户推送消息的任务;后台任务指的是,运行中,在用户未与其进行交互时,并不需要向用户推送消息的任务。
举例来说:终端当前所处的运行环境是,用户在淘宝内浏览商品,当前运行中的应用还有微信、QQ、邮箱、天气、音乐,可以对上述应用对应的任务进行分类,可以将淘宝对应的任务作为首要任务,可以将微信对应的任务、QQ对应的任务以及邮箱对应的任务作为前台任务,可以将天气对应的任务以及音乐对应的任务作为后台任务。
可选的,由于确定了终端当前的工作温度,可以确定当前的工作温度在参考温度范围内所属的目标温度档位。确定当前待运行的各任务对应的任务类型,可以理解为,将当前待运行的各任务进行分类,可以将这些任务分为首要任务、前台任务以及后台任务。
S303,基于不同温度档位下任务类型与空闲占空比的对应关系,确定在所述目标温度档位下各所述任务对应的空闲占空比。
可选的,可以预先设置任务类型、温度档位以及空闲占空比之间的对应关系,并存储在终端本地。由于本申请实施例中设置三种任务类型,因此,可以分别设置首要任务、温度档位以及空闲占空比之间的对应关系,前台任务、温度档位以及空闲占空比之间的对应关系,后台任务、温度档位以及空闲占空比之间的对应关系。当确定当前的工作温度所属的目标温度档位,对各任务进行任务分类后,可以按照任务类型,在本地查询该任务类型与温度档位、空闲占空比之间的对应关系,进一步的,可以从查询到的对应关系中寻找目标温度档位所对应的空闲占空比。
举例来说:可参见如图4所示的折线示意图,示例性的,图4示出了不同任务类型的任务,温度档位与空闲占空比之间的对应关系。对于首要任务,当CPU温度在40度~56度范围内时,空闲占空比设置在0;当CPU温度在56度~60度时,空闲占空比设置在5%。
对于前台任务,当CPU温度在40度~44度范围内时,空闲占空比设置在0;当CPU温度在44度~46度范围内时,空闲占空比设置在10%;当CPU温度在46度~48度范围内时,空闲占空比设置在15%;当CPU温度在48度~50度范围内时,空闲占空比设置在20%;当CPU温度在50度~52度范围内时,空闲占空比设置在25%;当CPU温度在44度~46度范围内时,空闲占空比设置在10%;当CPU温度在46度~48度范围内时,空闲占空比设置在15%;当CPU温度在48度~50度范围内时,空闲占空比设置在15%;当CPU温度在50度~52度范围内时,空闲占空比设置在20%;当CPU温度在52度~54度范围内时,空闲占空比设置在25%;当CPU温度在54度~60度范围内时,空闲占空比设置在30%。
对于后台任务,当CPU温度在40度~42度范围内时,空闲占空比设置在10%;当CPU温度在42度~44度范围内时,空闲占空比设置在15%;当CPU温度在44度~46度范围内时,空闲占空比设置在20%;当CPU温度在46度~48度范围内时,空闲占空比设置在25%;当CPU温度在48度~50度范围内时,空闲占空比设置在30%;当CPU温度在50度~52度范围内时,空闲占空比设置在35%;当CPU温度在54度~56度范围内时,空闲占空比设置在40%;当CPU温度在56度~58度范围内时,空闲占空比设置在45%;当CPU温度在58度~60度范围内时,空闲占空比设置在50%。
S304,将预计总运行时长除以当前待运行任务的总数量,得到平均时长,将所述平均时长作为参考运行时长。
其中,预计总运行时长指的是,在一段时间内,CPU循环运行多个任务时,每次运行这多个任务所需的时长。比如,沿用S302中的例子,当前运行的应用包括淘宝、微信、QQ、邮箱、天气、音乐。短时间内,CPU需要循环运行这些应用所对应的多个任务,预计总运行时长可以设置为1000毫秒,也就是说,CPU需要在1000毫秒内将上述所有任务运行一次。可以理解的是,预计总运行时长可以按照实际应用预先设定,当本申请实施例执行时,可以直接获取预先设定的预计总运行时长。
在一种可行的实施方式中,可以确定当前待运行任务的总数量,进一步的,可以将预计总运行时长除以当前待运行任务的总数量的商,这个商可以为每个任务的平均时长,平均时长可以作为每个任务的参考运行时长。
S305,基于所述各任务对应的任务类型,调整所述参考运行时长,得到所述各任务对应的初始运行时长。
可选的,相关技术中,不考虑任务类型,可以确定每个任务的参考运行时长都是相同的。在本申请实施中,为了保证用户体验,首要任务是与用户正在交互的任务,可以适当增加参考运行时长,前台任务当前与用户不存在交互,可以保持参考运行时长,或者也可以增加参考运行时长,前台任务的参考运行时长的增加步长可以小于首要任务的增加步长,前台任务的参考运行时长的增加步长也可以等于首要任务的增加步长。而后台任务与用户不存在交互时,也不影响用户体验,可以适当减少参考运行时长。需要说明的是,当任务对应的参考运行时长进行调整后,所有任务对应的参考时长总和可能并不等于预计总运行时长,此时可以将调整后的参考运行时长作为各个任务的初始运行时长。
举例来说:沿用S304中的例子,预计总运行时长为1000毫秒,而有1个首要任务、3个前台任务以及2个后台任务,得到6个任务的参考运行时长为166毫秒,可以将首要任务的参考运行时长调整为200毫秒,3个前台任务的运行时长也可以分别调整为200毫秒,将2个后台任务的参考运行可以分别调整为100毫秒。因此,对于调整后的6个任务来说,首要任务的初始运行时长可以为200毫秒,前台任务的初始运行时长可以为200毫秒,后台任务的初始运行时长可以为100毫秒。
需要说明的是,本申请实施例中:前述S304和S305为终端涉及的如何“确定各任务对应的初始运行时长”的步骤,其技术构思与本申请前述涉及的“直接获取任务对应原始的初始运行时长”所对应的技术构思不一样,前述S304和S305相当于对原始的初始运行时长的更新过程,通过引入任务的任务类型来对初始运行时长进行更新,可基于初始运行时长的再调整实现所述任务运行的流畅度。
S306,计算各所述任务对应的所述初始运行时长和所述空闲占空比的乘积,将所述乘积作为各所述任务对应的处理器空闲时长。
可选的,计算每个任务对应的初始运行时长和空闲占空比的乘积,可以得到每个任务对应的处理器空闲时长。通常,CPU可以在每个任务对应的初始运行时长内运行任务,而在本申请实施例中,CPU可以在初始运行时长内的处理器空闲时长内处于空闲状态,并不运行本该运行的任务。CPU处于空闲状态,可以理解为,CPU在各个任务对应的初始运行时长内运行任务就是CPU在初始运行时长内所做的工作,而本申请实施例中,CPU在处理器运行时长内进行工作,在处理器空闲时长内休息。
S307,计算各所述任务对应的所述初始运行时长和所述处理器空闲时长的差值,将所述差值作为各所述任务对应的处理器运行时长。
可选的,可以将初始运行时长减去处理器空闲时长,得到处理器运行时长。通常,CPU可以在每个任务对应的初始运行时长内运行任务,而在本申请实施例中,CPU可以在初始运行时长内的处理器运行时长内运行任务。可以理解的是,处理器运行时长加上处理器空闲时长等于初始运行时长,在处理器运行时长内,CPU可以运行任务,在处理器空闲时长内,CPU可以不运行任务,处于空闲状态,当处于某个任务的初始运行时长内时,CPU可以先在处理器运行时长内运行任务,然后再在处理器空闲时长内不运行任务,简言之,CPU可以先工作再休息,工作的时间段可以为处理器运行时长,休息的时间段可以为处理器空闲时长。
举例来说:可沿用S305和S303中的例子,当前CPU的温度为47度时,对于淘宝、微信、QQ、邮箱、天气、音乐,这6个应用对应的任务来说,淘宝对应的任务的初始运行时长为200毫秒,空闲占空比时长为0,则对应的处理器运行时长为200毫秒,处理器空闲时长为0毫秒。微信对应的任务、QQ对应的任务、邮箱对应的任务,这些任务的初始运行时长可以为200毫秒,空闲占空比时长为10%,则对应的处理器运行时长为180毫秒,处理器空闲时长为20毫秒。天气对应的任务、音乐对应的任务,这2个任务的初始运行时长可以为100毫秒,空闲占空比时长为25%,则对应的处理器运行时长为75毫秒,处理器空闲时长为25毫秒。
S308,获取各所述任务对应的运行顺序。
可选的,当前待运行的各任务可以按照先进先出的队列顺序进行排列,等待被CPU运行。应用在运行的过程,应用所对应的任务也被CPU反复运行。因此,当任务按照顺序等待着被CPU运行时,可以获取各个任务当前所对应的运行顺序。
比如,沿用S304中的例子,CPU当前运行的任务,可以有淘宝对应的任务、微信对应的任务、QQ对应的任务、邮件对应的任务、天气对应的任务、以及音乐对应的任务。在某个时刻,这些任务对应的排列顺序,由先到后可以依次为:微信对应的任务、淘宝对应的任务、QQ对应的任务、邮件对应的任务、天气对应的任务、音乐对应的任务。按照此排列顺序,当微信对应的任务被CPU运行后,这些任务对应的排列顺序,可以变化为:淘宝对应的任务、QQ对应的任务、邮件对应的任务、天气对应的任务、音乐对应的任务、微信对应的任务。按照新的排列顺序,当淘宝对应的任务被CPU运行后,这些任务最新的排列顺序,可以为:QQ对应的任务、邮件对应的任务、天气对应的任务、音乐对应的任务、微信对应的任务、淘宝对应的任务。可以理解的是,当某个任务被运行后,该任务可以在已有的任务队列上继续排队,等待下一次被CPU运行。
S309,按照所述运行顺序依次读取各所述任务,并按照当前读取到的目标任务对应的处理器运行时长和处理器空闲时长运行所述目标任务。
可选的,CPU可以按照各任务的运行顺序依次读取各任务,对于当前读取到的目标任务,可以在该目标任务对应的处理器运行时长内运行该目标任务,当经过处理器运行时长后,CPU可以停止运行该目标任务,进一步的,在进入该目标任务对应的处理器空闲时长内时,CPU可以继续保持停止运行该目标任务,可以处于空闲状态,可以理解为,CPU处于休息状态。
S310,读取所述目标任务的下一个任务,将所述下一个任务作为所述目标任务,并执行按照当前读取到的目标任务对应的处理器运行时长和处理器空闲时长运行所述目标任务的步骤。
可选的,当经过目标任务对应的处理器运行时长和处理器空闲时长后,CPU可以读取该目标任务的下一个任务,可以将下一个任务作为当前的目标任务,进一步的,在当前的目标任务对应的处理器运行时长内运行当前的目标任务,当进入当前的目标任务对应的处理器空闲时长内时,CPU可以处于空闲状态,不运行当前的目标任务。
举例来说:沿用S308中的例子,CPU当前运行的任务,可以有淘宝对应的任务、微信对应的任务、QQ对应的任务、邮件对应的任务、天气对应的任务、以及音乐对应的任务。在某个时刻,这些任务对应的排列顺序,由先到后可以依次为:微信对应的任务、淘宝对应的任务、QQ对应的任务、邮件对应的任务、天气对应的任务、音乐对应的任务。按照此排列顺序,当目标任务为微信对应的任务时,目标任务的下一个任务是淘宝对应的任务,当CPU运行完微信对应的任务后,淘宝对应的任务作为目标任务,CPU可以读取淘宝对应的任务所对应的处理器运行时长和处理器空闲时长,进一步的,CPU可以在该处理器运行时长内运行淘宝对应的任务,而在该处理器空闲时长内休息。依次类推,CPU可以按照队列顺序依次读取下一个任务,并运行下一个任务。
S311,直到所有任务都运行完成。
具体的,可以按照S310的步骤读取每一个待运行的任务,只要任务队列中有任务在排列,CPU就可以一直读取每一个待运行的任务,并运行每一个待运行的任务,直至任务队列中没有待运行的任务。
本申请实施例的方案在执行时,检测终端当前的工作温度,当所述工作温度范围位于参考温度范围内时,确定当前待运行的各任务对应的任务类型,并确定所述工作温度所属的目标温度档位。进一步的,根据任务类型、温度档位以及空闲占空比之间的对应关系,可以确定目标温度档位下,各个任务的空闲占空比。进一步的,可以根据预计总运行时长计算出每个任务的参考运行时长,可以再根据任务所属的任务类型对各个任务的参考进行时长进行调整得到初始运行时长。因此,可以根据任务的不同类型,给各个任务设置合理的初始运行时长,在保证终端性能的情况下,可以给用户带来较好的体验。比如,对于影响用户体验的首要任务,可以设置稍微长点的运行时长;对于与用户没有交互的后台任务,可以设置稍微短的运行时长。进一步的,CPU在运行各个任务时,可以在处理器运行时长内运行任务,在处理器空闲时长处于空闲状态,以使CPU运行某些任务时,可以处于空闲状态,当CPU温度升高时,可以缓解终端发热的情况,并且还可以保证终端不会出现卡顿的情况。
请参见图5,在图1所示的场景示意图的基础上,为本申请实施例提供的一种任务运行方法的流程示意图。如图5所示,本申请实施例的所述方法可以包括以下步骤:
S501,检测终端当前的工作温度。
具体的,可参见图2中的S201,在此不再赘述。
S502,确定所述工作温度位于参考温度范围内,确定针对处理器上至少一个任务中各任务对应的任务类型,并确定所述工作温度所属的目标温度档位。
具体的,可参见图3中的S302,在此不再赘述。
S503,基于各所述任务类型对应的任务组,对各所述任务进行任务分组处理,生成分组处理后的至少一个任务类型对应的任务组。
其中,当任务类型为首要任务时,对应的任务组可以是首要任务组,当任务类型为前台任务时,对应的任务组可以是前台任务组,当任务类型为后台任务时,对应的任务组可以是后台任务组。
可选的,可以基于首要任务、前台任务以及后台任务,确定首要任务组、前台任务组以及后台任务组,可以将这些任务中属于首要任务类型的任务分配至首要任务组,属于前台任务类型的任务分配至前台任务组,属于后台任务类型的任务分配至后台任务组。
S504,基于不同温度档位下任务组与空闲占空比的对应关系,确定在所述目标温度档位下各所述任务组对应的空闲占空比,对所述任务组中的所有任务设置所述空闲占空比。
可选的,可以预先设置任务组、温度档位以及空闲占空比之间的对应关系,并存储在终端本地。由于本申请实施例中设置三个任务组,因此,可以设置首要任务组、温度档位以及空闲占空比之间的对应关系,首要任务组的所有任务可以根据该对应关系确定;可以设置前台任务组、温度档位以及空闲占空比之间的对应关系,前台任务组的所有任务可以根据该对应关系确定;可以设置后台任务组、温度档位以及空闲占空比之间的对应关系,后台任务组的所有任务可以根据该对应关系确定。因此,当确定当前的工作温度所属的目标温度档位后,可以按照任务组,在本地查询各任务组与温度档位、空闲占空比之间的对应关系,进一步的,可以从查询到的对应关系中寻找目标温度档位下各任务组所对应的空闲占空比,进一步的,可以对各任务组中所包括的任务设置对应的空闲占空比。
举例来说:可参见图6所示的任务组、温度档位以及空闲占空比之间的对应关系。可以理解的是,对于首要任务组来说,对用户的影响最大,可以设置较低甚至为0的空闲占空比;对于前台任务组来说,对用户也有一定程度的影响,当温度升高时,还是可以设置较低的空闲占空比;对于后台任务组来说,对用户的影响不大,当温度升高时,可以不断增加空闲占空比。
S505,确定各所述任务对应的初始运行时长。
S506,基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长。
具体的,S505和S506可参见图2中的S202和S203,在此不再赘述。
S507,获取各所述任务组中所有所述任务对应的任务处理顺序。
其中,任务处理顺序,指的是任务在等待被CPU运行的队列中的排列顺序,该队列遵循先进先出的顺序。
可选的,各任务组中所有任务在队列中排序时,可以是随机排序的。比如,任务1所在的任务组是首要任务组,任务2、任务3、任务4所在的任务组是前台任务组,任务5和任务6所在的任务组是后台任务组,任务1-6在队列中的顺序可以是:任务1,任务5,任务2,任务3,任务6,任务4,当前的队列顺序就可以称为任务处理顺序。
S508,基于所述任务处理顺序和各所述任务所对应的任务类型,确定针对各所述任务的目标任务处理顺序。
其中,目标任务处理顺序,指的是对基于任务类型对排列的各任务进行重新排序后,所得到的任务处理顺序。
可选的,可以按照任务类型对排列的各任务进行重新排序,具体可以采用一个计算方法,对各任务进行重新排序,比如,计算公式可以为:目标值=当前位置+权重值,其中,首要任务类型对应的权重值可以设为6,前台任务对应的权重值可以设为3,后台任务对应的权重值可以设为1,当前位置为各任务在任务处理顺序中的排列位置,最后按照目标值由大到小的顺序对各任务进行重新排序,得到新的队列顺序,该队列顺序就为目标任务处理顺序。当出现目标值相同的不同任务类型的任务时,把首要任务类型的任务排在最前,把前台任务类型的任务排在中间,把后台任务类型的任务排在最后。
举例来说:沿用S507中的例子,对任务1-6按照上述计算公式重新计算,得到任务1的目标值为7,任务2的目标值为6,任务3的目标值为7,任务4的目标值是9,任务5的目标值为3,任务6对应的目标值为6,得到目标任务处理顺序是:任务4,任务1,任务3,任务2,任务6,任务5。经过举例可以看出,调整排列顺序后,首要任务类型的任务和前台任务类型的任务都排在了后台任务类型的任务的前面,可以在一定程度上保证首要类型的任务和前台任务类型的任务的执行顺序,将后台任务类型的任务放在延后执行。
S509,按照各所述任务对应的处理器运行时长和处理器空闲时长采用所述目标任务处理顺序运行各所述任务。
可选的,目标任务处理顺序是调整后的队列顺序,该队列顺序依旧遵循先进先出的规则,处理器在运行这些任务时,可以按照调整后的队列顺序依次运行各任务。由于给各任务设定了处理器运行时长和处理器空闲时长,处理器运行时长和处理器空闲时长的总和等于初始运行时长,当处理器运行每个任务时,可以将处理器运行时长排在初始运行时长内的前段时间,将处理器空闲时长排在初始运行时长内的后段时间,那么处理器可以先在处理器运行时长内运行任务,然后再在处理器空闲时长内处于空闲状态。
本申请实施例的方案在执行时,当确定所述工作温度位于参考温度范围内时,确定针对处理器上至少一个任务中各任务对应的任务类型,并确定所述工作温度所属的目标温度档位。基于各所述任务类型对应的任务组,对各所述任务进行任务分组处理,生成分组处理后的至少一个任务类型对应的任务组。基于不同温度档位下任务组与空闲占空比的对应关系,确定在所述目标温度档位下各所述任务组对应的空闲占空比,对所述任务组中的所有任务设置所述空闲占空比。因此,本申请将当前队列中属于同一类型的任务进行分组得到不同的任务组,确定各任务组对应的空闲占空比,并给任务组的各任务设置该空闲占空比,后续再运行各个任务时,不需要再去判断任务所属的任务类型,直接获取分组后设置好的空闲占空比,可以节省处理器资源。本申请还可以获取各所述任务组中所有所述任务对应的任务处理顺序,基于所述任务处理顺序和各所述任务所对应的任务类型,确定针对各所述任务的目标任务处理顺序,按照各所述任务对应的处理器运行时长和处理器空闲时长采用所述目标任务处理顺序运行各所述任务。因此,本申请可以对当前处理器对应的任务队列中各任务的排列顺序进行调整,可以将对用户重要性较高的任务排在队列前面,将对用户重要性较低的任务排列在队列后面,可以保证对用户重要性较高的任务的优先执行顺序,从而可以保证用户体验。并且,CPU在运行各个任务时,可以在处理器运行时长内运行任务,在处理器空闲时长处于空闲状态,以使CPU运行某些任务时,可以处于空闲状态,当CPU温度升高时,可以缓解终端发热的情况,并且还可以保证终端不会出现卡顿的情况。
请参见图7,为本申请实施例提供的一种任务运行装置的结构示意图。任务运行装置700可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。装置700包括:
第一确定模块710,用于检测终端当前的工作温度,并确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比;
第二确定模块720,用于确定各所述任务对应的初始运行时长;
第三计算模块730,用于基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长;
第四运行模块740,用于按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务。
可选的,第一确定模块710包括:
温度判断单元,用于判断所述工作温度是否位于参考温度范围内;
占空比确定单元,用于确定所述工作温度位于所述参考温度范围内,以及确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比。
可选的,占空比确定单元包括:
第一占空比计算子单元,用于确定针对处理器上至少一个任务中各任务所对应的任务类型,并确定所述工作温度所属的目标温度档位;
第二占空比计算子单元,用于基于不同温度档位下任务类型与空闲占空比的对应关系,确定在所述目标温度档位下各所述任务对应的空闲占空比。
可选的,占空比确定单元还包括:
第三占空比计算子单元,用于基于各所述任务所对应的任务类型,对各所述任务进行任务分组处理,生成分组处理后的至少一个任务类型对应的任务组;
第四占空比计算子单元,用于基于不同温度档位下任务组与空闲占空比的对应关系,确定在所述目标温度档位下各所述任务组对应的空闲占空比,对所述任务组中的所有所述任务设置所述空闲占空比。
可选的,第四运行模块740包括:
第五运行单元,用于获取各所述任务组中所有所述任务对应的任务处理顺序;
第六运行单元,用于基于所述任务处理顺序和各所述任务所对应的任务类型,确定针对各所述任务的目标任务处理顺序;
第七运行单元,用于按照各所述任务对应的处理器运行时长和处理器空闲时长采用所述目标任务处理顺序运行各所述任务。
可选的,第二确定模块720包括:
运行时长确定单元,用于基于各所述任务对应的任务类型、当前待运行任务的总数量以及预计总运行时长,分配各所述任务对应的初始运行时长。
可选的,运行时长确定单元包括:
第一时长计算子单元,用于将预计总运行时长除以当前待运行任务的总数量,得到平均时长,将所述平均时长作为参考运行时长;
第二时长计算子单元,用于基于所述各任务对应的任务类型,调整所述参考运行时长,得到所述各任务对应的初始运行时长。
可选的,第三计算模块730包括:
第一计算单元,用于计算各所述任务对应的所述初始运行时长和所述空闲占空比的乘积,将所述乘积作为各所述任务对应的处理器空闲时长;
第二计算单元,用于计算各所述任务对应的所述初始运行时长和所述处理器空闲时长的差值,将所述差值作为各所述任务对应的处理器运行时长。
可选的,第四运行模块740包括:
第一运行单元,用于获取各所述任务对应的运行顺序;
第二运行单元,用于按照所述运行顺序依次读取各所述任务,并按照当前读取到的目标任务对应的处理器运行时长和处理器空闲时长运行所述目标任务;
第三运行单元,用于读取所述目标任务的下一个任务,将所述下一个任务作为所述目标任务,并执行按照当前读取到的目标任务对应的处理器运行时长和处理器空闲时长运行所述目标任务的步骤;
第四运行单元,用于直到所有任务都运行完成。
本申请实施例的方案在执行时,检测终端当前的工作温度,并确定在所述工作温度下当前待运行的各任务对应的空闲占空比,确定各所述任务对应的初始运行时长,基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长,按照各所述任务对应的处理器运行时长和处理器空闲时长依次运行各所述任务。本申请可以在终端当前所处的工作温度下,计算出当前待运行的各个任务对应的处理器运行时长和处理器空闲时长,可以让处理器在处理器运行时长内运行相应的任务,以及在处理器空闲时长内使得处理器处于空闲状态,避免了相关技术中由于终端温度升高而采取限制处理器频率的方式来达到降温的目的,从而导致终端出现卡顿的情况,而本申请可以在缓解终端温度的同时,保证终端不卡顿。
请参考图8,图8为本申请实施例提供的一种终端的结构示意图。如图8所示,终端1300可以包括:至少一个处理器1301,至少一个网络接口1304,用户接口1303,存储器1305,显示屏组件1306,至少一个通信总线1302。
其中,通信总线1302用于实现这些组件之间的连接通信。
其中,用户接口1303可以包括显示屏(Display)、摄像头(Camera),可选用户接口1303还可以包括标准的有线接口、无线接口。
其中,网络接口1304可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1301可以包括一个或者多个处理核心。处理器1301利用各种借口和线路连接整个终端1300内的各个部分,通过运行或执行存储在存储器1305内的指令、程序、代码集或指令集,以及调用存储在存储器1305内的数据,执行终端1300的各种功能和处理数据。可选的,处理器1301可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1301可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1301中,单独通过一块芯片进行实现。
其中,存储器1305可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1305包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1305可用于存储指令、程序、代码、代码集或指令集。存储器1305可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1305可选的还可以是至少一个位于远离前述处理器1301的存储装置。如图8所示,作为一种计算机存储介质的存储器1305中可以包括操作系统、网络通信模块、用户接口模块以及任务运行程序。
在图8所示的终端1300中,用户接口1303主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1301可以用于调用存储器1305中存储的任务运行程序,并具体执行以下操作:
检测终端当前的工作温度,并确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比;
确定各所述任务对应的初始运行时长;
基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长;
按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务。
在一个实施例中,处理器1301在执行所述并确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比的步骤时,具体执行以下步骤:
判断所述工作温度是否位于参考温度范围内;
确定所述工作温度位于所述参考温度范围内,以及确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比。
在一个实施例中,处理器1301在执行确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比的步骤时,具体执行以下步骤:
确定针对处理器上至少一个任务中各任务所对应的任务类型,并确定所述工作温度所属的目标温度档位;
基于不同温度档位下任务类型与空闲占空比的对应关系,确定在所述目标温度档位下各所述任务对应的空闲占空比。
在一个实施例中,处理器1301在执行所述确定针对处理器上至少一个任务中各任务所对应的任务类型之后,还执行以下步骤:
基于各所述任务所对应的任务类型,对各所述任务进行任务分组处理,生成分组处理后的至少一个任务类型对应的任务组;
所述基于不同温度档位下任务类型与空闲占空比的对应关系,确定在所述目标温度档位下各所述任务对应的空闲占空比,包括:
基于不同温度档位下任务组与空闲占空比的对应关系,确定在所述目标温度档位下各所述任务组对应的空闲占空比,对所述任务组中的所有所述任务设置所述空闲占空比。
在一个实施例中,处理器1301在执行所述按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务的步骤时,具体执行以下步骤:
获取各所述任务组中所有所述任务对应的任务处理顺序;
基于所述任务处理顺序和各所述任务所对应的任务类型,确定针对各所述任务的目标任务处理顺序;
按照各所述任务对应的处理器运行时长和处理器空闲时长采用所述目标任务处理顺序运行各所述任务。
在一个实施例中,处理器1301在执行所述确定各所述任务对应的初始运行时长的步骤时,具体执行以下步骤:
基于各所述任务对应的任务类型、当前待运行任务的总数量以及预计总运行时长,分配各所述任务对应的初始运行时长。
在一个实施例中,处理器1301在执行所述基于各所述任务对应的任务类型、当前待运行任务的总数量以及预计总运行时长,分配各所述任务对应的初始运行时长的步骤时,具体执行以下步骤:
将预计总运行时长除以当前待运行任务的总数量,得到平均时长,将所述平均时长作为参考运行时长;
基于所述各任务对应的任务类型,调整所述参考运行时长,得到所述各任务对应的初始运行时长。
在一个实施例中,处理器1301在执行所述基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长的步骤时,具体执行以下步骤:
计算各所述任务对应的所述初始运行时长和所述空闲占空比的乘积,将所述乘积作为各所述任务对应的处理器空闲时长;
计算各所述任务对应的所述初始运行时长和所述处理器空闲时长的差值,将所述差值作为各所述任务对应的处理器运行时长。
在一个实施例中,处理器1301在执行所述按照各所述任务对应的处理器运行时长和处理器空闲时长依次运行各所述任务的步骤时,具体执行以下步骤:
获取各所述任务对应的运行顺序;
按照所述运行顺序依次读取各所述任务,并按照当前读取到的目标任务对应的处理器运行时长和处理器空闲时长运行所述目标任务;
读取所述目标任务的下一个任务,将所述下一个任务作为所述目标任务,并执行按照当前读取到的目标任务对应的处理器运行时长和处理器空闲时长运行所述目标任务的步骤;
直到所有任务都运行完成。
除此之外,本领域技术人员可以理解,上述附图所示出的终端1300的结构并不构成对终端1300的限定,用户终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端1300中还包括射频电路、音频电路、WiFi组件、电源、蓝牙组件等部件,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述各个实施例所述的任务运行方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的任务运行方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种任务运行方法,其特征在于,所述方法包括:
检测终端当前的工作温度,并确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比;
确定各所述任务对应的初始运行时长;
基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长;
按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务。
2.根据权利要求1所述的方法,其特征在于,所述确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比,包括:
判断所述工作温度是否位于参考温度范围内;
确定所述工作温度位于所述参考温度范围内,以及确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比。
3.根据权利要求1或2所述的方法,其特征在于,所述确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比,包括:
确定针对处理器上至少一个任务中各任务所对应的任务类型,并确定所述工作温度所属的目标温度档位;
基于不同温度档位下任务类型与空闲占空比的对应关系,确定在所述目标温度档位下各所述任务对应的空闲占空比。
4.根据权利要求3所述的方法,其特征在于,所述确定针对处理器上至少一个任务中各任务所对应的任务类型,包括:
确定针对处理器上至少一个任务中各任务所对应的任务类型;
基于各所述任务所对应的任务类型,对各所述任务进行任务分组处理,生成分组处理后的至少一个任务类型对应的任务组;
所述基于不同温度档位下任务类型与空闲占空比的对应关系,确定在所述目标温度档位下各所述任务对应的空闲占空比,包括:
基于不同温度档位下任务组与空闲占空比的对应关系,确定在所述目标温度档位下各所述任务组对应的空闲占空比,对所述任务组中的所有所述任务设置所述空闲占空比。
5.根据权利要求4所述的方法,其特征在于,所述按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务,包括:
获取各所述任务组中所有所述任务对应的任务处理顺序;
基于所述任务处理顺序和各所述任务所对应的任务类型,确定针对各所述任务的目标任务处理顺序;
按照各所述任务对应的处理器运行时长和处理器空闲时长采用所述目标任务处理顺序运行各所述任务。
6.根据权利要求1所述的方法,其特征在于,所述确定各所述任务对应的初始运行时长,包括:
基于各所述任务对应的任务类型、当前待运行任务的总数量以及预计总运行时长,分配各所述任务对应的初始运行时长。
7.根据权利要求6所述的方法,其特征在于,所述基于各所述任务对应的任务类型、当前待运行任务的总数量以及预计总运行时长,分配各所述任务对应的初始运行时长,包括:
将预计总运行时长除以当前待运行任务的总数量,得到平均时长,将所述平均时长作为参考运行时长;
基于所述各任务对应的任务类型,调整所述参考运行时长,得到所述各任务对应的初始运行时长。
8.根据权利要求1所述的方法,其特征在于,所述基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长,包括:
计算各所述任务对应的所述初始运行时长和所述空闲占空比的乘积,将所述乘积作为各所述任务对应的处理器空闲时长;
计算各所述任务对应的所述初始运行时长和所述处理器空闲时长的差值,将所述差值作为各所述任务对应的处理器运行时长。
9.根据权利要求1所述的方法,其特征在于,所述按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务,包括:
获取各所述任务对应的运行顺序;
按照所述运行顺序依次读取各所述任务,并按照当前读取到的目标任务对应的处理器运行时长和处理器空闲时长运行所述目标任务;
读取所述目标任务的下一个任务,将所述下一个任务作为所述目标任务,并执行按照当前读取到的目标任务对应的处理器运行时长和处理器空闲时长运行所述目标任务的步骤;
直到所有任务都运行完成。
10.一种任务运行装置,其特征在于,所述装置包括:
第一确定模块,用于检测终端当前的工作温度,并确定在所述工作温度下针对处理器上至少一个任务对应的空闲占空比;
第二确定模块,用于确定各所述任务对应的初始运行时长;
第三计算模块,用于基于各所述任务对应的所述初始运行时长和所述空闲占空比,计算各所述任务对应的处理器运行时长和处理器空闲时长;
第四运行模块,用于按照各所述任务对应的处理器运行时长和处理器空闲时长运行各所述任务。
11.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~9任意一项的方法步骤。
12.一种终端,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~9任意一项的方法步骤。
CN202110957428.5A 2021-08-19 2021-08-19 任务运行方法、装置、存储介质以及终端 Pending CN113849284A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110957428.5A CN113849284A (zh) 2021-08-19 2021-08-19 任务运行方法、装置、存储介质以及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110957428.5A CN113849284A (zh) 2021-08-19 2021-08-19 任务运行方法、装置、存储介质以及终端

Publications (1)

Publication Number Publication Date
CN113849284A true CN113849284A (zh) 2021-12-28

Family

ID=78976117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110957428.5A Pending CN113849284A (zh) 2021-08-19 2021-08-19 任务运行方法、装置、存储介质以及终端

Country Status (1)

Country Link
CN (1) CN113849284A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114880120A (zh) * 2022-05-10 2022-08-09 马上消费金融股份有限公司 数据处理方法、装置、设备及存储介质
CN117806807A (zh) * 2024-02-29 2024-04-02 双一力(宁波)电池有限公司 任务调度方法、装置、电子设备和计算机可读存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114880120A (zh) * 2022-05-10 2022-08-09 马上消费金融股份有限公司 数据处理方法、装置、设备及存储介质
CN117806807A (zh) * 2024-02-29 2024-04-02 双一力(宁波)电池有限公司 任务调度方法、装置、电子设备和计算机可读存储介质
CN117806807B (zh) * 2024-02-29 2024-05-17 双一力(宁波)电池有限公司 任务调度方法、装置、电子设备和计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN107463403B (zh) 进程控制方法、装置、存储介质以及电子设备
US10628216B2 (en) I/O request scheduling method and apparatus by adjusting queue depth associated with storage device based on hige or low priority status
CN109408223B (zh) 资源配置方法、装置、终端及存储介质
CN107533450B (zh) 一种显示方法及终端设备
CN113849284A (zh) 任务运行方法、装置、存储介质以及终端
CN109710330B (zh) 应用程序的运行参数确定方法、装置、终端及存储介质
CN111124230B (zh) 输入响应方法、装置、电子设备及计算机可读存储介质
EP3592004A1 (en) Broadcast processing method, device, storage medium and terminal device
EP3663925A1 (en) Method for processing refreshing display abnormality, and terminal
CN106020962B (zh) 一种进程控制方法及终端设备
CN107332997B (zh) 减少终端发热的方法、装置、移动终端及存储介质
CN113781949B (zh) 图像显示方法、显示驱动芯片、显示屏模组及终端
CN104572150B (zh) 一种信息处理方法和装置
CN111767012A (zh) 投屏方法及装置
CN112464095A (zh) 消息推送方法、装置、终端及存储介质
CN107870792B (zh) 一种移动终端的启动方法及移动终端和介质产品
CN115079680A (zh) 一种车控状态处理方法、装置、存储介质及电子设备
JP2015206931A (ja) データ処理方法、データ処理装置及びプログラム
CN112715040B (zh) 一种降低功耗的方法、终端设备及存储介质
CN105116991A (zh) 一种终端省电方法和装置
CN108011860B (zh) 一种处理广播消息的方法、装置及终端
CN106776041B (zh) 一种数据处理方法及装置
US20220086214A1 (en) Scheduling Method and Terminal
CN114610255A (zh) 画面绘制方法、装置、存储介质以及终端
CN110209491B (zh) 一种资源管理方法、装置、服务器及存储介质

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