CN113282390A - 任务调度方法、装置、电子设备及可读存储介质 - Google Patents

任务调度方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN113282390A
CN113282390A CN202110554268.XA CN202110554268A CN113282390A CN 113282390 A CN113282390 A CN 113282390A CN 202110554268 A CN202110554268 A CN 202110554268A CN 113282390 A CN113282390 A CN 113282390A
Authority
CN
China
Prior art keywords
task
target
tasks
determining
memory
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
CN202110554268.XA
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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202110554268.XA priority Critical patent/CN113282390A/zh
Publication of CN113282390A publication Critical patent/CN113282390A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开关于任务调度方法、装置、电子设备及可读存储介质,涉及操作系统技术领域,以解决相关技术中影响用户体验和留存率的问题。该任务调度方法包括:确定电子设备中目标参数的数值;目标参数包括内存使用率和处理器使用率中的至少一项;在目标参数的数值小于第一阈值的情况下,确定目标任务中的N个任务;目标任务是任务参数大于第二阈值的待执行任务,任务参数包括任务耗时、任务内存使用率和任务内存占用时长中的至少一项;N为正整数;调用N个任务。

Description

任务调度方法、装置、电子设备及可读存储介质
技术领域
本公开涉及操作系统技术领域,尤其涉及一种任务调度方法、装置、电子设备及可读存储介质。
背景技术
应用程序在不同终端上使用时,由于终端的配置差异,应用程序的呈现效果不同。对于低配置的终端,应用程序在运行时容易出现卡顿、画面模糊、闪退等问题,导致用户体验不佳、留存率低。
相关技术中,为了不影响应用程序在低配置终端上的使用,一般会采用功能降级的方法,也就是不使用应用程序的某些功能,以使应用程序能够适配低配置终端。然而,对应用程序进行功能降级,依然会影响用户体验和留存率。
发明内容
本公开提供一种任务调度方法、装置、电子设备及可读存储介质,以至少解决相关技术中影响用户体验和留存率的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种任务调度方法,应用于电子设备,包括:确定所述电子设备中目标参数的数值;所述目标参数包括内存使用率和处理器使用率中的至少一项;在所述目标参数的数值小于第一阈值的情况下,确定目标任务中的N个任务;所述目标任务是任务参数大于第二阈值的待执行任务,所述任务参数包括丢帧率、任务耗时、任务内存使用率和任务内存占用时长中的至少一项;N为正整数;调用所述N个任务。
在一种可能实现方式中,所述确定目标任务中的N个任务,包括:获取当前业务场景的场景标识;读取映射关系,以确定所述映射关系中与所述当前业务场景的场景标识对应的任务标识;所述映射关系包括每一所述目标任务的任务标识以及与每一任务标识对应的业务场景的场景标识;根据确定出的任务标识,确定所述N个任务。
在另一种可能实现方式中,所述根据确定出的任务标识,确定所述N个任务,包括:确定所述确定出的每一任务标识指示的任务的执行优先级;根据确定出的执行优先级,确定所述N个任务,所述N个任务的执行优先级高于所述目标任务中除所述N个任务之外的其他任务的执行优先级。
在另一种可能实现方式中,所述任务调度方法还包括:获取目标业务场景的场景标识;目标业务场景为当前业务场景跳转的下一个场景;确定目标业务场景的场景标识下的任务的执行状态;在执行状态为未执行的情况下,调用目标业务场景的场景标识下的任务。
在另一种可能实现方式中,所述确定所述电子设备中目标参数的数值之前,还包括:将所述目标任务接入预先创建的任务调度框架。
在另一种可能实现方式中,所述将所述目标任务接入预先创建的任务调度框架,包括:确定待执行任务的任务参数;在所述待执行任务的任务参数大于第二阈值的情况下,将所述待执行任务接入预先创建的任务调度框架。
在另一种可能实现方式中,N为小于或等于所述电子设备的处理器核数的正整数。
在另一种可能实现方式中,所述确定所述电子设备中目标参数的数值,包括:按照预设时间间隔,确定所述电子设备中目标参数的数值。
在另一种可能实现方式中,所述任务调度方法还包括:根据处理器使用率和所述电子设备的处理器核数,确定N的值。
根据本公开实施例的第二方面,提供一种任务调度装置,包括:确定模块,被配置为执行确定所述电子设备中目标参数的数值;所述目标参数包括内存使用率和处理器使用率中的至少一项;所述确定模块,还被配置为执行在所述目标参数的数值小于第一阈值的情况下,确定目标任务中的N个任务;所述目标任务是任务参数大于第二阈值的待执行任务,所述任务参数包括丢帧率、任务耗时、任务内存使用率和任务内存占用时长中的至少一项;N为正整数;调用模块,被配置为执行调用所述N个任务。
在一种可能实现方式中,所述确定模块具体被配置为执行:获取当前业务场景的场景标识;读取映射关系,以确定所述映射关系中与所述当前业务场景的场景标识对应的任务标识;所述映射关系包括每一所述目标任务的任务标识以及与每一任务标识对应的业务场景的场景标识;根据确定出的任务标识,确定所述N个任务。
在另一种可能实现方式中,所述确定模块具体被配置为执行:确定所述确定出的每一任务标识指示的任务的执行优先级;根据确定出的执行优先级,确定所述N个任务,所述N个任务的执行优先级高于所述目标任务中除所述N个任务之外的其他任务的执行优先级。
在另一种可能实现方式中,所述任务调度装置还包括:兜底模块,被配置为执行:获取目标业务场景的场景标识;目标业务场景为当前业务场景跳转的下一个场景;确定目标业务场景的场景标识下的任务的执行状态;在执行状态为未执行的情况下,调用目标业务场景的场景标识下的任务。
在另一种可能实现方式中,所述任务调度装置还包括:调度框架模块,被配置为执行:将所述目标任务接入预先创建的任务调度框架。
在另一种可能实现方式中,所述调度框架模块具体被配置为执行:确定待执行任务的任务参数;在所述待执行任务的任务参数大于第二阈值的情况下,将所述待执行任务接入预先创建的任务调度框架。
在另一种可能实现方式中,所述确定模块具体被配置为执行:按照预设时间间隔,确定所述电子设备中目标参数的数值。
在另一种可能实现方式中,所述确定模块还被配置为执行:根据处理器使用率和所述电子设备的处理器核数,确定N的值。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现本实施例的第一方面中任一项所述的任务调度方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质置,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本实施例的第一方面中任一项所述的任务调度方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如如本实施例的第一方面中任一项所述的任务调度方法。
本公开的实施例提供的技术方案至少带来以下有益效果:通过确定电子设备中内存使用率和处理器使用率中至少一项的数值,判断电子设备是否处于空闲状态,以便在电子设备的内存或处理器空闲的情况下,提前错峰执行耗时、耗内存的目标任务,降低内存和处理器的压力,从而在不影响应用程序功能的情况下,避免了电子设备运行应用程序时出现的卡顿、画面模糊、闪退等问题,进而提高了用户体验和留存率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种任务调度方法的流程图;
图2是根据一示例性实施例示出的一种电子设备的处理器运行状态示意图;
图3是根据一示例性实施例示出的另一种电子设备的处理器运行状态示意图;
图4是根据一示例性实施例示出的另一种任务调度方法的流程图;
图5是根据一示例性实施例示出的业务场景示意图;
图6是根据一示例性实施例示出的另一种任务调度方法的流程图;
图7是根据一示例性实施例示出的另一种任务调度方法的流程图;
图8是根据一示例性实施例示出的待执行任务的任务内存占用示意图;
图9是根据一示例性实施例示出的一种任务调度装置的框图;
图10是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在对本公开提供的任务调度方法进行详细介绍之前,先对本公开涉及的应用场景和实施环境进行简单介绍。
首先,对本公开涉及的应用场景进行简单介绍。
在Android、iOS等移动平台中,存在机型差异性大的问题。例如Android平台的系统版本跨度大、厂商多,同一款应用程序在不同电子设备上的使用体验差异很明显。
现有技术中,线上、线下性能测试一般偏向于Android、iOS的中高端电子设备,以优化保证高端机的使用体验。低端电子设备如果出现使用体验不佳的情况,则考虑功能降级,也就是不使用应用程序的某些功能,以适配低端电子设备上性能不佳的处理器、内存条件。然而,功能降级的应用程序,依然会影响用户体验和留存率。
针对上述问题,本公开提供了一种任务调度方法、装置、电子设备及可读存储介质,通过确定电子设备中内存使用率和处理器使用率中至少一个数值,判断电子设备是否处于空闲状态,以便在电子设备的内存或处理器空闲的情况下,提前错峰执行耗时、耗内存的目标任务,降低内存和处理器的压力,从而在不影响应用程序功能的情况下,避免了电子设备运行应用程序时出现的卡顿、画面模糊、闪退等问题,进而提高了用户体验和留存率。
下面对本公开涉及的实施环境(实施架构)进行简单介绍。
本公开实施例提供的任务调度方法可以应用于电子设备。电子设备可以是终端设备或服务器。其中,终端设备可以是智能手机、平板电脑、掌上电脑、车载终端、台式电脑以及笔记本电脑等。服务器可以是任意一个服务器或服务器集群,本公开对此不做限定。
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
图1是根据一示例性实施例示出的一种任务调度方法的流程图,如图1所示,该任务调度方法应用于电子设备,包括以下S101-S103。
在S101中,确定电子设备中目标参数的数值。
其中,目标参数包括内存使用率和处理器使用率中的至少一项。
通过确定电子设备中目标参数的数值,可以判断电子设备当前是否处于空闲状态,进而确定电子设备的当前运行能力,从而避免在电子设备的运行能力不足的情况下,调用耗时、耗内存的任务。
在一个示例中,可以通过定时检测电子设备的处理器的负载状态或内存的负载状态,确定处理器使用率或内存使用率的数值。并通过处理器使用率或内存使用率与第一预设阈值的关系,判断电子设备是否处于空闲状态。
在一种可能实现方式中,确定电子设备中目标参数的数值的步骤,包括:按照预设时间间隔,确定电子设备中目标参数的数值。通过按照预设时间间隔确定电子设备中目标参数的数值,可以实现循环调用目标任务,从而增加调用目标任务的次数,避免需要调用的目标任务过多时,一次性调用的目标任务的数量过多而将处理器或内存资源耗尽,进而保证每次只需要调用有限个目标任务,即可实现展示目标任务对应的业务场景前,目标任务能够全部被提前调用。
可以理解的是,电子设备的系统每次RunLoop循环的时间间隔都是固定。
在一个示例中,可以根据RunLoop循环控制目标任务调用的频次。示例性的,可以通过控制间隔预设数量的RunLoop进行一次调用目标任务。例如,可以是每次RunLoop循环来的时候,进行一次目标任务的调用。
在S102中,在目标参数的数值小于第一阈值的情况下,确定目标任务中的N个任务。
其中,所述目标任务是任务参数大于第二阈值的待执行任务,所述任务参数包括丢帧率、任务耗时、任务内存使用率和任务内存占用时长中的至少一项;N为正整数。
可以理解的是,在目标参数的数值小于第一阈值的情况下,电子设备的内存或处理器处于空闲状态。例如,在处理器使用率的数值为10%时,确定电子设备的处理器处于空闲状态。在内存使用率的数值为10%时,确定电子设备的内存处于空闲状态。通过设置在电子设备的处理器或内存空闲的情况下,确定待执行的耗时、耗内存的目标任务,能够保证应用程序在电子设备以最优的条件运行目标任务。
在一个示例中,目标任务可以是待执行任务中的耗时任务。具体地,可以根据待执行任务的任务耗时或丢帧率确定待执行任务是否为耗时任务。示例性的,在待执行任务的任务耗时大于第二阈值时,确定待执行任务为耗时任务,此外,还可以在待执行任务的丢帧率大于第二阈值时,确定待执行任务为耗时任务。
在另一个示例中,目标任务可以是待执行任务中的耗内存任务。具体地,可以根据待执行任务的任务内存使用率和任务内存占用时长中至少一项确定待执行任务是否为耗内存任务。示例性的,在待执行任务的任务内存使用率大于第二阈值时,确定待执行任务为耗内存任务。此外,还可以在待执行任务的任务内存占用时长大于第二阈值时,确定待执行任务为耗内存任务。其中,任务内存占用时长即待执行任务执行时占用内存的时长。
可以理解的是,可以根据任务参数的不同而选取不同的第二阈值的数值,以保证目标任务确定的准确性。
示例性的,如图2所示,可以看出电子设备的处理器的运行情况,即Cpu0、Cpu1、Cpu2、Cpu3、Cpu4共5个处理器的运行情况。可以理解的是,在图的左半段(图的上方基本是涂满颜色的,表示处理器没有空闲,且颜色越深表示处理器负载越重)处理器的负载较高。在图的右半段(图的上方有部分空白,表示这部分时间处理器是空闲状态)处理器负载较低。因此,当电子设备的系统在图2的左半段时,不会调用目标任务中的任务,因为此时的处理器负载已经很重,额外调用其他任务并不会有比较好的效果,可能还会引起卡顿等现象。当电子设备的系统负载进入图2的右半段时,处理器使用率比较低,处理器有一部分时间是空闲状态,此时,可以调用目标任务中的任务来使用空闲状态的处理器,充分利用空闲状态的处理器的计算资源。
在一种可能实现方式中,任务调度方法还包括:根据处理器使用率和电子设备的处理器核数,确定N的值。通过设置根据处理器使用率和电子设备的处理器核数确定调用目标任务的数量,可以避免处理器和内存资源被过度使用,从而避免电子设备运行应用程序时出现的卡顿、画面模糊、闪退等问题,进而提高了用户体验和用户留存率。
示例性的,在处理器使用率低于第三阈值、且电子设备的处理器核数为4的情况下,N可以设置为大于处理器核数的一半,且小于处理器核数。例如,在处理器使用率为10%时,处理器核数为4时,N可以设置为3。
在一种可能的实现方式中,N为小于或等于所述电子设备的处理器核数的正整数。通过控制调用的目标任务的数量,能够避免造成电子设备的内存或处理器内占用过高,从而提高目标任务的调用效率。
示例性的,如图3所示,电子设备有4个处理器,即Cpu0、Cpu1、Cpu2、Cpu3,此时,N小于或等于4。
示例性的,N可以设置为等于处理器核数的一半。例如,在电子设备的处理器核数为4时,N为2。
在S103中,调用N个任务。
上述实施例提供的技术方案至少带来了以下有益效果:通过确定电子设备中内存使用率和处理器使用率中至少一项的数值,判断电子设备是否处于空闲状态,以便在电子设备的内存或处理器空闲的情况下,提前错峰执行耗时、耗内存的目标任务,降低内存和处理器的压力,从而在不影响应用程序功能的情况下,避免了电子设备运行应用程序时出现的卡顿、画面模糊、闪退等问题,进而提高了用户体验和留存率。
在一种可能实现方式中,结合图1,如图4所示,S102可以包括S1021-S1023。
在S1021中,获取当前业务场景的场景标识。
示例性的,如图5所示,场景标识可以包括消费场景标识、社交场景标识和音视频播放场景标识中的任一个。
在S1022中,读取映射关系,以确定映射关系中与当前业务场景的场景标识对应的任务标识。
其中,映射关系包括每一目标任务的任务标识以及与每一任务标识对应的业务场景的场景标识。
在一个示例中,目标任务包括任务标识和场景标识。其中,目标任务的任务标识和目标任务的场景标识成映射关系。通过目标任务的场景标识可以确定目标任务的业务场景。通过读取映射关系,并确定与当前业务场景的场景标识对应的任务标识,能够快速确定当前业务场景下的多个目标任务,从而提高任务调度效率,进而提高用户体验。
在S1023中,根据确定出的任务标识,确定N个任务。
通过获取当前业务场景的场景标识,并确定与该场景标识对应的任务标识,能够优先执行与当前业务场景对应的目标任务,从而避免当前业务场景展现时出现卡顿,进而提高用于体验和留存率。
在一种可能实现方式中,结合图3,如图6所示,S1023可以包括S1023a-S1023b。
在S1023a中,确定所述确定出的每一任务标识指示的任务的执行优先级。
在一个示例中,目标任务还包括目标任务在的场景标识对应的业务场景中的执行优先级。
示例性的,执行优先级可以包括High、Normal、Low三个级别。目标任务的执行优先级可以是High、Normal、Low中的任一个。其中,High优先于Normal、Low,Normal优先于Low。
通过确定每一任务标识指示的任务的执行优先级,可以确定该目标任务在业务场景中的重要性,从而可以根据目标任务在业务场景中的重要性,确定目标任务中的任务的执行顺序。
在S1023b中,根据确定出的执行优先级,确定N个任务。
其中,N个任务的执行优先级高于目标任务中除N个任务之外的其他任务的执行优先级。
示例性的,可以每次只调用执行优先级最高的任务。例如,任务标识指示的任务的执行优先级有High、Normal、Low三种时,执行High级的任务。在任务标识指示的任务的执行优先级有Normal、Low二种时,执行Normal级的任务。还可以按照任务的执行优先级从高到低的顺序调用任务。
示例性的,在首页-双列场景下,用户可能会一直往下滑动刷Feed。此时,会优先调用与这个用户场景强相关的任务(例如,会优先调度首页接口预加载任务),在首页接口预加载任务完成后,后续用户往下翻屏的时候会有比较好的体验,会更加流畅。
示例性的,用户登录后的这个场景,会优先调用用户信息同步相关的任务,因为后续这部分信息可能会在其他地方被用到,所以需要被提前调用。
示例性的,视频播放时,会预处理下个视频的相关信息,从而提高下一个视频的观看体验。
通过确定每一任务标识指示的任务的执行优先级,并根据确定出的执行优先级,确定N个任务,可以优先调用与当前业务场景最强相关的任务,从而保证业务场景展现时的流畅性,进而提高用户的使用体验。
在一种可能实现方式中,结合图1,如图7所示,任务调度方法还包括S104-S106。该任务调度方法应用于电子设备。
在S104中,获取目标业务场景的场景标识。
其中,目标业务场景为当前业务场景跳转的下一个场景。
在S105中,确定目标业务场景的场景标识下的任务的执行状态。
在S106中,在执行状态为未执行的情况下,调用目标业务场景的场景标识下的任务。
通过获取目标业务场景的场景标识,确定目标业务场景的场景标识下的任务的执行状态,以便在执行状态为未执行的情况下,调用目标业务场景的场景标识下的任务,能够保证在目标业务场景的场景标识下的任务没有及时调用的情况下,优先调用目标业务场景的场景标识下的任务,从而保证在目标业务场景被展现之前,调用目标业务场景的场景标识下的任务,进而提高目标业务场景展现时的流畅性。此外,还能够避免某些情形,需要相关任务处理结果时,相关任务没有被及时调用。
示例性的,电子设备只有一个处理器时,电子设备调用并运行任务会相对较慢。在消费-双列的业务场景下,因为可能从首页跳到视频详情页,任务调度方法调用任务时,最高优的是调用“首页接口预加载”的任务,次高优的是调用“播放器预处理”的任务,可以理解的是,“播放器预处理”的任务即视频详情页展示时需要用到的任务。然而,在“首页接口预加载”任务比较耗时的情况下,消费-双列的业务场景正常使用过程中,可能没有办法在首页跳到视频详情页之前的处理器或内存空闲状态时调用到“播放器预处理”的任务。此时,当用户在首页点击某个Feed Item跳转视频详情页之前,通过接收目标业务场景的执行信息,也即,接收视频详情页的执行信息,获取视频详情页的场景标识下的“播放器预处理”的任务的执行状态,并在“播放器预处理”的任务未执行时,调用“播放器预处理”的任务,以保证在视频详情页的视频播放之前,“播放器预处理”的任务能执行完毕。可以理解的是,在该示例中,视频详情页对应目标业务场景,“播放器预处理”的任务对应目标业务场景的场景标识下的任务。
需要说明的是,在某些性能较差的电子设备上,“播放器预处理”的任务没有得到调用执行时,可以绕过处理器使用率、内存使用率的限制,在视频播放前立即执行这个任务,以保证任务的可靠执行。
在一种可能的实现方式中,确定电子设备中目标参数的数值之前,还包括:将目标任务接入预先创建的任务调度框架。通过将目标任务接入预先创建的任务调度框架,可以在处理器或内存空闲状态时,由任务调度框架根据预设的调度策略实现任务的调用,从而任务调用的可靠性、高效性和准确性。
示例性的,调度策略可以是在电子设备中目标参数的数值小于第一阈值的情况下,调用目标任务中的N个任务。
在一种可能的实现方式中,将目标任务接入预先创建的任务调度框架,包括:确定待执行任务的任务参数;在待执行任务的任务参数大于第二阈值的情况下,将待执行任务接入预先创建的任务调度框架。通过确定待执行任务的任务参数,判断待执行任务是否为耗时、耗内存任务,并在确定待执行任务为耗时、耗内存的任务的情况下,将该待执行任务接入任务调度框架,以便由任务调度框架在处理器或内存空闲状态下调用耗时、耗内存任务,从而提高耗时、耗内存任务的运行效率。
在一个示例中,通过线下Systrace工具,分析应用程序中的耗时的任务(耗时的任务会长时间占用处理器资源),并将耗时任务接入任务调度框架。可以理解是,任务调度框架内需要做一些代码接入层的改造。
需要说明的是,应用程序运行过程中,判断卡顿时,可以以前三帧的平均帧耗时为参考,作为vsync时间间隔,连续两次vsync没有新渲染画面刷新,则认为是一次潜在卡顿。也就是说,下一帧耗时大于前三帧平均帧耗时2倍,则认为一次潜在卡顿。在此基础上,当存在2-3次以上的UI丢帧时,会导致用户可感知的卡顿。此时,该UI线程任务在页面渲染比较重的时候执行是不合适的,更合适在页面静止(即用户感知不到UI更新)的时候执行。
示例性的,待执行任务是一个UI线程任务耗时82ms的任务时,一般屏幕刷新率的电子设备每渲染一帧的耗时是16ms,也就是说,在页面非静止的情况下,这个非渲染相关的UI线程会导致6次UI丢帧,用户侧会感知到明显的卡顿。因此,该待执行任务是需要接任务调度框架,以便进行错峰执行的目标任务。
在一个示例中,待执行任务的任务耗时大于40ms时,待执行任务为耗时任务,也即,该待执行任务时需要接入任务调度框架,以便在内存或处理器空闲状态下执行的目标任务。
在另一个示例中,可以通过线下内存分析工具,分析内存使用率高、内存占用时长长的任务。
示例性的,通过线下内存分析工具分析待执行任务的内存使用率可以得到如图8所示的分析结果。其中,纵坐标为待执行任务执行时占用内存的数值,横坐标为待执行任务的执行时间。在图8中,Others所指示的第一任务在T2时刻占用内存的数值为0GB,Code所指示的第二任务在T2时刻占用内存的数值为0.5GB,Graphics所指示的第三任务在T2时刻占用内存的数值为0GB,Native所指示的第四任务在T2时刻占用内存的数值为0.1GB,Java所指示的第五任务在T2时刻占用内存的数值为0.1GB,Stack所指示的任务在T2时刻占用内存的数值为0GB。可以理解的是,在T2时刻,第二任务和第四任务的内存占用比较高的情况。需要说明的时,在内存上限为1G的情况下,要保证内存水平在一定阈值以下(例如,阈值可设为0.8G),内存过高会导致电子设备的系统触发内存回收(内存回收期间,电子设备的系统会停止其他工作,从而导致卡顿等流畅度问题)。此外,在开始运行后,第一任务、第二任务、第三任务、第四任务、第五任务占用内存的数值开始逐渐上涨,当待执行任务运行到T1时刻开始,第一任务、第二任务、第三任务、第四任务、第五任务占用内存的数值开始逐渐下降。另外,如果导致内存上涨的任务和页面渲染关系不大,那么可以延后调度该任务(即在内存空闲状态的时候调用),从而保证任务被调用后,不会出现内存过高从而导致系统内存回收的情况。
在另一种示例中,判断内存高的标准可以:内存使用率的阈值,内存使用率超过阈值的时间(即内存占用时长),以及与内存上涨相关的任务内容是否与页面渲染有关。例如,可以是任务执行时的内存使用率大于第二阈值的情况下,该待执行任务是内存高的任务,也即,待执行任务是目标任务。还可以是任务执行时内存使用率大于第二阈值,且占用内存时长大于阈值的情况下,该待执行任务是内存高的任务,也即,待执行任务是目标任务。
对于长时间占用内存的任务,接入任务调度框架后选择合适的时机(即目标参数的数值小于第一阈值的情况下)开始调用相关目标任务。内存负载高的时候提供相关接口可以释放这部分常驻内存。对于短时间占用高内存的情况,选择在合适的时机调度这部分逻辑,避让内存峰值。
上述主要从方法的角度对本公开实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本公开能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
本公开实施例还提供一种任务调度装置。
图9是根据一示例性实施例示出的一种任务调度装置框图。该任务调度装置900可以应用于上述实施例中的电子设备,也可以是上述电子设备中用于任务调度的控制模块。参照图9,该任务调度装置包括确定模块901和调用模块902。
该确定模块901被配置为执行确定所述电子设备中目标参数的数值。所述目标参数包括内存使用率和处理器使用率中的至少一项。例如,结合图1,确定模块901可以用于执行S101。
该确定模块901还被配置为执行在所述目标参数的数值小于第一阈值的情况下,确定目标任务中的N个任务。所述目标任务是任务参数大于第二阈值的待执行任务,所述任务参数包括丢帧率、任务耗时、任务内存使用率和任务内存占用时长中的至少一项;N为正整数。例如,结合图1,确定模块901可以用于执行S102。
该调用模块902被配置为执行调用所述N个任务。例如,结合图1,调用模块902可以用于执行S103。
在一种可能的实现方式中,所述确定模块901具体被配置为执行:获取当前业务场景的场景标识。读取映射关系,以确定所述映射关系中与所述当前业务场景的场景标识对应的任务标识。所述映射关系包括每一所述目标任务的任务标识以及与每一任务标识对应的业务场景的场景标识。根据确定出的任务标识,确定所述N个任务。例如,结合图4,确定模块901可以用于执行S1021-S1023。
在另一种可能的实现方式中,所述确定模块901具体被配置为执行:确定所述确定出的每一任务标识指示的任务的执行优先级。根据确定出的执行优先级,确定所述N个任务,所述N个任务的执行优先级高于所述目标任务中除所述N个任务之外的其他任务的执行优先级。例如,结合图6,该确定模块901可以用于执行S1023a-S1023b。
在另一种可能的实现方式中,所述任务调度装置还包括:兜底模块,被配置为执行:获取目标业务场景的场景标识。目标业务场景为当前业务场景跳转的下一个场景。确定目标业务场景的场景标识下的任务的执行状态。在执行状态为未执行的情况下,调用目标业务场景的场景标识下的任务。例如,结合图7,该兜底模块可以用于执行S104-S106。
在另一种可能的实现方式中,所述任务调度装置还包括:调度框架模块,被配置为执行:将所述目标任务接入预先创建的任务调度框架。
在另一种可能的实现方式中,所述调度框架模块具体被配置为执行:确定待执行任务的任务参数。在所述待执行任务的任务参数大于第二阈值的情况下,将所述待执行任务接入预先创建的任务调度框架。
在另一种可能的实现方式中,N为小于或等于所述电子设备的处理器核数的正整数。
在另一种可能的实现方式中,所述确定模块901具体被配置为执行:按照预设时间间隔,确定所述电子设备中目标参数的数值。
在另一种可能的实现方式中,所述确定模块901还被配置为执行:根据处理器使用率和所述电子设备的处理器核数,确定N的值。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图10是根据一示例性实施例示出的一种电子设备的框图。电子设备1000可以是手机、平板电脑、笔记本电脑、掌上电脑、台式计算机、便携式计算机、车载终端以及可穿戴设备等。如图10所示,电子设备1000包括但不限于:处理器1001和存储器1002。
其中,上述的存储器1002,用于存储上述处理器1001的可执行指令。可以理解的是,上述处理器1001被配置为执行指令,以实现上述S101-S106的任务调度方法。
需要说明的是,本领域技术人员可以理解,图10中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图10所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器1001是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器1002内的软件程序和/或模块,以及调用存储在存储器1002内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器1001可包括一个或多个处理单元。可选的,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。
存储器1002可用于存储软件程序以及各种数据。存储器1002可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能模块所需的应用程序(比如图像获取模块、定位模块、隐变量获取模块或图像生成模块等)等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器1002,上述指令可由电子设备1000的处理器1001执行以完成上述S101-S106的任务调度方法。可选地,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在一个示例中,参见图9,上述确定模块901和调用模块902的处理功能均可以由图10中的处理器1001调用存储器1002中存储的计算机程序实现。
在示例性实施例中,本公开实施例还提供一种计算机程序产品,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述S101-S106的任务调度方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种任务调度方法,其特征在于,应用于电子设备,包括:
确定所述电子设备中目标参数的数值;所述目标参数包括内存使用率和处理器使用率中的至少一项;
在所述目标参数的数值小于第一阈值的情况下,确定目标任务中的N个任务;所述目标任务是任务参数大于第二阈值的待执行任务,所述任务参数包括丢帧率、任务耗时、任务内存使用率和任务内存占用时长中的至少一项;N为正整数;
调用所述N个任务。
2.根据权利要求1所述的任务调度方法,其特征在于,所述确定目标任务中的N个任务,包括:
获取当前业务场景的场景标识;
读取映射关系,以确定所述映射关系中与所述当前业务场景的场景标识对应的任务标识;所述映射关系包括每一所述目标任务的任务标识以及与每一任务标识对应的业务场景的场景标识;
根据确定出的任务标识,确定所述N个任务。
3.根据权利要求2所述的任务调度方法,其特征在于,所述根据确定出的任务标识,确定所述N个任务,包括:
确定所述确定出的每一任务标识指示的任务的执行优先级;
根据确定出的执行优先级,确定所述N个任务,所述N个任务的执行优先级高于所述目标任务中除所述N个任务之外的其他任务的执行优先级。
4.根据权利要求1所述的任务调度方法,其特征在于,所述任务调度方法还包括:
获取目标业务场景的场景标识;所述目标业务场景为当前业务场景跳转的下一个场景;
确定所述目标业务场景的场景标识下的任务的执行状态;
在所述执行状态为未执行的情况下,调用所述目标业务场景的场景标识下的任务。
5.根据权利要求1-4中任一项所述的任务调度方法,其特征在于,所述确定所述电子设备中目标参数的数值之前,还包括:
将所述目标任务接入预先创建的任务调度框架。
6.根据权利要求5所述的任务调度方法,其特征在于,所述将所述目标任务接入预先创建的任务调度框架,包括:
确定待执行任务的任务参数;
在所述待执行任务的任务参数大于第二阈值的情况下,将所述待执行任务接入预先创建的任务调度框架。
7.一种任务调度装置,其特征在于,包括:
确定模块,被配置为执行确定所述电子设备中目标参数的数值;所述目标参数包括内存使用率和处理器使用率中的至少一项;
所述确定模块,还被配置为执行在所述目标参数的数值小于第一阈值的情况下,确定目标任务中的N个任务;所述目标任务是任务参数大于第二阈值的待执行任务,所述任务参数包括丢帧率、任务耗时、任务内存使用率和任务内存占用时长中的至少一项;N为正整数;
调用模块,被配置为执行调用所述N个任务。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-6中任一项所述的任务调度方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-6中任一项所述的任务调度方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-6中任一项所述的任务调度方法。
CN202110554268.XA 2021-05-20 2021-05-20 任务调度方法、装置、电子设备及可读存储介质 Pending CN113282390A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110554268.XA CN113282390A (zh) 2021-05-20 2021-05-20 任务调度方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110554268.XA CN113282390A (zh) 2021-05-20 2021-05-20 任务调度方法、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN113282390A true CN113282390A (zh) 2021-08-20

Family

ID=77280526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110554268.XA Pending CN113282390A (zh) 2021-05-20 2021-05-20 任务调度方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113282390A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134658A (zh) * 2022-05-27 2022-09-30 阿里巴巴云计算(北京)有限公司 视频处理方法、装置、设备及存储介质
CN116107714A (zh) * 2023-02-02 2023-05-12 北京天云融创软件技术有限公司 一种运行mpi任务的方法和装置
CN116991246A (zh) * 2023-09-27 2023-11-03 之江实验室 用于导览机器人的算法调度方法、装置及导览机器人系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423123A (zh) * 2017-07-25 2017-12-01 广东欧珀移动通信有限公司 任务调度方法、装置、存储介质及电子设备
CN110162386A (zh) * 2019-04-04 2019-08-23 口碑(上海)信息技术有限公司 一种任务下发方法及装置
CN110716800A (zh) * 2019-10-09 2020-01-21 广州华多网络科技有限公司 任务调度方法及装置、存储介质及电子设备
US20200073710A1 (en) * 2018-08-30 2020-03-05 Baidu Online Network Technology (Beijing) Co., Ltd. Task scheduling method, apparatus, electronic device and storage medium
CN111459754A (zh) * 2020-03-26 2020-07-28 平安普惠企业管理有限公司 异常任务的处理方法、装置、介质及电子设备
CN111754189A (zh) * 2020-05-18 2020-10-09 浙江口碑网络技术有限公司 任务投放方法、装置、计算机设备及计算机可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423123A (zh) * 2017-07-25 2017-12-01 广东欧珀移动通信有限公司 任务调度方法、装置、存储介质及电子设备
US20200073710A1 (en) * 2018-08-30 2020-03-05 Baidu Online Network Technology (Beijing) Co., Ltd. Task scheduling method, apparatus, electronic device and storage medium
CN110162386A (zh) * 2019-04-04 2019-08-23 口碑(上海)信息技术有限公司 一种任务下发方法及装置
CN110716800A (zh) * 2019-10-09 2020-01-21 广州华多网络科技有限公司 任务调度方法及装置、存储介质及电子设备
CN111459754A (zh) * 2020-03-26 2020-07-28 平安普惠企业管理有限公司 异常任务的处理方法、装置、介质及电子设备
CN111754189A (zh) * 2020-05-18 2020-10-09 浙江口碑网络技术有限公司 任务投放方法、装置、计算机设备及计算机可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134658A (zh) * 2022-05-27 2022-09-30 阿里巴巴云计算(北京)有限公司 视频处理方法、装置、设备及存储介质
CN115134658B (zh) * 2022-05-27 2024-05-14 阿里巴巴云计算(北京)有限公司 视频处理方法、装置、设备及存储介质
CN116107714A (zh) * 2023-02-02 2023-05-12 北京天云融创软件技术有限公司 一种运行mpi任务的方法和装置
CN116991246A (zh) * 2023-09-27 2023-11-03 之江实验室 用于导览机器人的算法调度方法、装置及导览机器人系统

Similar Documents

Publication Publication Date Title
CN113282390A (zh) 任务调度方法、装置、电子设备及可读存储介质
KR102490908B1 (ko) 자원 스케줄링 방법 및 단말 장치
US20180052711A1 (en) Method and system for scheduling video analysis tasks
US8984123B2 (en) Rejuvenation processing device, rejuvenation processing system, computer program, and data processing method
CN110795056B (zh) 调节显示参数的方法、装置、终端及存储介质
CN108829510B (zh) 线程绑定处理方法和装置
CN106295326B (zh) 一种用于获取显卡内容的内联hook方法和系统
CN111708642A (zh) Vr系统中处理器性能优化方法、装置及vr设备
CN112473144A (zh) 游戏资源数据的处理方法及装置
US9195505B2 (en) Method, system and an executable piece of code for controlling the use of hardware resources of a computer system
CN107038736B (zh) 一种基于帧率的动画展示方法及终端设备
US20230305880A1 (en) Cluster distributed resource scheduling method, apparatus and device, and storage medium
CN112162851B (zh) dex预编译方法、装置、计算机设备及存储介质
CN108768763A (zh) 心跳信息发送方法及装置
CN106126335A (zh) 终端设备的媒体扫描方法及终端设备
CN112650541B (zh) 一种应用程序启动加速方法、系统、设备及存储介质
CN110633148A (zh) 一种系统运行的优化方法、装置、电子设备及存储介质
CN110658904A (zh) 控制终端电流的方法、装置、终端及存储介质
CN114461323B (zh) 一种卡顿处理方法、装置、电子设备及存储介质
US9348667B2 (en) Apparatus for managing application program and method therefor
CN115617518A (zh) 线程管理方法、装置、电子设备及存储介质
CN112506622B (zh) 面向云手机的gpu计算性能的预测方法及装置
CN116737357A (zh) 一种调整处理器频率的方法及装置
US11445248B1 (en) Pooling user interface (UI) engines for cloud UI rendering
CN110515736B (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