CN110750346B - 任务运行优化方法、装置、终端及存储介质 - Google Patents
任务运行优化方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN110750346B CN110750346B CN201910988110.6A CN201910988110A CN110750346B CN 110750346 B CN110750346 B CN 110750346B CN 201910988110 A CN201910988110 A CN 201910988110A CN 110750346 B CN110750346 B CN 110750346B
- Authority
- CN
- China
- Prior art keywords
- task
- application
- target
- information
- kernel
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种任务运行优化方法、装置、终端及存储介质,属于资源调度领域。所述方法包括:获取系统追踪systrace文件,systrace文件中包括应用信息和内核信息,应用信息用于指示应用与任务之间的关联关系,内核信息用于指示任务在内核中的运行情况;根据应用信息和内核信息生成主任务组,主任务组中包含至少一个待优化任务;对主任务组中的各个待优化任务进行运行优化。本申请提供的方法,能够实现减少应用在不同终端内出现运行不流畅的情况,从而提高应用的运行性能以及系统的运行速度。
Description
技术领域
本申请实施例涉及资源调度领域,特别涉及一种任务运行优化方法、装置、终端及存储介质。
背景技术
如今,为了提高生活的便捷性与用户娱乐,智能终端设备被安装有越来越多的应用程序。当应用程序运行时,终端设备为运行中的应用程序进行系统资源的调度。
然而,由于系统资源是有限的,当移动终端中多个应用程序同时运行时,若对于各个应用程序进行不合理的资源调度,易造成移动终端的使用卡顿。
为了解决上述问题,相关技术中所采用的方法为对各个应用程序统一进行系统级别的性能提升,然而,该方法无法结合不同应用程序的资源需求,一定程度上造成了系统资源的浪费。
发明内容
本申请实施例提供了一种任务运行优化方法、装置、终端及存储介质。所述技术方案如下:
一方面,提供了一种任务运行优化方法,所述方法包括:
获取系统追踪(system trace,systrace)文件,所述systrace文件中包括应用信息和内核信息,所述应用信息用于指示应用与任务之间的关联关系,所述内核信息用于指示所述任务在内核中的运行情况;
根据所述应用信息和所述内核信息生成主任务组,所述主任务组中包含至少一个待优化任务;
对所述主任务组中的各个待优化任务进行运行优化。
另一方面,提供了一种任务运行优化装置,所述装置包括:
文件获取模块,用于获取systrace文件,所述systrace文件中包括应用信息和内核信息,所述应用信息用于指示应用与任务之间的关联关系,所述内核信息用于指示所述任务在内核中的运行情况;
主任务组生成模块,用于根据所述应用信息和所述内核信息生成主任务组,所述主任务组中包含至少一个待优化任务;
运行优化模块,用于对所述主任务组中的各个待优化任务进行运行优化。
另一方面,提供了一种终端,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的任务运行优化方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述方面所述的任务运行优化方法。
本申请实施例中,应用开发人员在应用开发阶段基于不同终端对应用进行运行测试,包括获取systrace文件,根据systrace文件中的应用信息和内核信息确定出待优化任务,各个待优化任务组成了主任务组,从而当应用在不同终端处实际运行时,不同终端将该应用对应的主任务组中的各个待优化任务进行运行优化;通过本申请实施例提供的技术方案,能够实现减少应用在不同终端内出现运行不流畅的情况,从而提高应用的运行性能以及系统的运行速度。
附图说明
图1是本申请一个示意性实施例提供的实施环境的示意图;
图2示出了本申请一个示例性实施例提供的任务运行优化方法的流程图;
图3示出了本申请一个示例性实施例提供的获取systrace文件的流程图;
图4示出了本申请另一个示例性实施例提供的任务运行优化方法的流程图;
图5示出了应用D和应用E对应任务的运行时间图;
图6示出了应用E基于主任务组的优化前后任务运行时间对比图;
图7示出了应用E基于主任务组的优化前后任务概率累计对比图;
图8示出了本申请另一个示例性实施例提供的任务运行优化方法的流程图;
图9示出了本申请一个示例性实施例提供的任务运行优化装置的结构框图;
图10示出了本申请一个示例性实施例提供的终端的结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境可以包括:测试终端110和用户终端120。
测试终端110和用户终端120可以是个人计算机、手机、平板电脑等电子设备。
对于测试终端110而言,目标应用的应用开发人员在测试终端110安装待测试的目标应用,并通过本申请实施例提供的技术方案从目标应用对应的目标任务中确定出待优化任务,从而生成主任务组,并将主任务组的相关信息携带入目标应用的安装包中,又或是,当目标应用运行在用户终端120上时,通过目标应用的服务器将目标应用对应的主任务组提供给用户终端120。
相应的,对于用户终端120而言,用户终端120安装该目标应用,用户终端120获取目标应用对应的主任务组,继而在目标应用运行于用户终端120的过程中,用户终端120对主任务组包含的各个待优化任务进行运行优化。其中,用户终端120仅用于表示安装有目标应用的终端,并不限制本申请实施例中用户终端120的个数。
请参考图2,其示出了本申请一个示例性实施例示出的任务运行优化方法的流程图,该方法包括:
步骤201,获取systrace文件,systrace文件中包括应用信息和内核信息。
在本申请各个实施例中,systrace文件是根据systrace工具对系统进行追踪得到的。其中,systrace工具是对系统性能分析的工具,systrace工具的功能包括跟踪系统的输入/输出操作、内核工作队列、中央处理器(Central Processing Unit,CPU)负载以及安卓各个子系统的运行状况等。
在一种可能的实施方式中,通过获取systrace文件能够了解终端内各个应用的进程状态。可选的,对于运行时占用较多内核资源的游戏类应用而言,是较容易出现运行卡顿以及显示游戏界面丢帧的情况,因此,获取该游戏应用对应的systrace文件能够分析终端内出现上述问题的原因。
其中,systrace工具能够收集系统中内核和终端内应用的数据信息,从而生成systrace文件,因此,systrace文件包括应用信息和内核信息,应用信息用于指示应用与任务之间的关联关系,内核信息用于指示任务在内核中的运行情况。
基于上述对systrace工具的功能描述,为了减少应用在终端内出现运行不流畅的情况,在一种可能的实施方式中,应用开发人员利用systrace工具对其开发的应用在不同终端内进行运行测试,并根据systrace文件分析出规避应用出现运行不流畅的技术方案。
在一个示意性的例子中,应用开发人员分别获取应用A在终端1、终端2和终端3中运行时生成的systrace文件,并根据不同终端处的systrace文件分析出规避应用A在不同终端处出现运行不流畅的技术方案。
步骤202,根据应用信息和内核信息生成主任务组,主任务组中包含至少一个待优化任务。
一般而言,导致应用出现运行不流畅的主要原因包括主要任务的内核资源分配不当以及当前应用对应的任务进程未能及时进行资源调度(即当前应用对应的任务等待运行的时间过长)等。
基于上述出现运行不流畅的主要原因,在一种可能的实施方式中,根据应用信息和内核信息生成主任务组,主任务组中包含至少一个待优化任务。
其中,应用信息指示了应用与任务之间的关联关系,因此,当应用开发人员对某一应用进行运行测试,能够根据应用与任务之间的关联关系,从应用信息中确定出该应用对应的任务,从而获取该应用对应任务的内核信息,并根据获取到的内核信息得到任务在内核中的运行情况。
然而,运行时间较长的任务易在终端内出现运行卡顿的情况(如终端内核资源不充足时),因此,在一种可能的实施方式中,应用开发人员将运行时间较长的任务确定为待优化任务,并生成主任务组。
步骤203,对主任务组中的各个待优化任务进行运行优化。
在一种可能的实施方式中,应用开发人员在应用开发阶段确定出该应用基于不同终端的主任务组,从而应用在不同终端处运行时,终端根据确定出的主任务组对各个待优化任务进行运行优化。
综上所述,本申请实施例中,应该开发人员在应用开发阶段基于不同终端对应用进行运行测试,包括获取systrace文件,根据systrace文件中的应用信息和内核信息确定出待优化任务,各个待优化任务组成了主任务组,从而当应用在不同终端处实际运行时,不同终端将该应用对应的主任务组中的各个待优化任务进行运行优化;通过本申请实施例提供的技术方案,能够实现减少应用在不同终端内出现运行不流畅的情况,从而提高应用的运行性能以及系统的运行速度。
在上述实施例中,已阐述了systrace文件中包括应用信息和内核信息。其中,应用信息的生成与基于安卓应用层的安卓追踪(android trace,atrace)工具相关,而内核信息的生成与基于内核层的函数追踪(function trace,ftrace)工具相关,因此,在一种可能的实施方式中,获取systrace文件(步骤201)之前还包括如下步骤。
步骤301,通过atrace工具生成atrace文件,atrace文件包含各个应用的应用信息。
atrace工具是一种用于安卓应用层任务追踪和应用性能分析的工具。在本申请各个实施例中,atrace文件是根据atrace工具对应用层进行追踪得到的,atrace文件包含各个应用的应用信息。
步骤302,通过ftrace工具生成ftrace文件,ftrace文件包含各个任务的内核信息。
ftrace工具是一种用于内核层任务追踪和内核性能分析的工具。在本申请各个实施例中,ftrace文件是根据ftrace工具对内核层进行追踪得到的,ftrace文件包含各个任务的内核信息。
与atrace工具不同的是,ftrace工具能够获取任务在内核内除运行状态之外的所有状态情况,如任务等待运行的时间等。而基于应用层的atrace工具,仅能够获取任务运行时的开始时间与结束时间。
步骤303,根据ftrace文件和atrace文件生成systrace文件。
在一种可能的实施方式中,当应用开发人员需要获取某一应用的systrace文件时,atrace文件通过系统调度方式从应用层调度至内核层,从而根据内核层的ftrace文件和atrace文件生成该应用的systrace文件。
请参考图4,其示出了本申请另一个示例性实施例示出的任务运行优化方法的流程图,该方法包括:
步骤401,获取systrace文件,systrace文件中包括应用信息和内核信息,应用信息包含应用标识信息和任务标识信息。
本步骤的部分内容请参考步骤201,本申请实施例在此不再赘述。此外,在本申请实施例中,systrace文件中的应用信息包含应用标识信息和任务标识信息。
其中,对于具体的某一应用而言,其应用标识信息和对应任务的任务标识信息是关联存储的。
可选的,应用标识信息包括有对应应用的应用标识号,任务标识信息包括有对应任务的任务标识号。
在一个示意性的例子中,应用A在运行时包括5个任务,依照应用A运行的时间线排列,各个任务的任务标识号分别为101、102、103、104和105,对于应用A的应用标识号可以是所包含的任务中第一个任务的任务标识号(即应用A的应用标识号为101),又或者是所有任务标识号中的共同部分(即应用A的应用标识号为10)。本申请实施例中,对应用标识信息和对应任务的任务标识信息的具体关联存储方式不作限定。
步骤402,获取目标应用的目标应用标识信息。
根据应用标识信息和对应任务的任务标识信息的关联存储关系,在一种可能的实施方式中,在获取到某一应用的应用标识信息后,能够根据该应用标识信息获取到该应用对应任务的任务标识信息。相应的,当需要对目标应用进行运行测试时,获取目标应用的目标应用标识信息。
步骤403,根据目标应用标识信息,从任务标识信息中获取目标应用对应目标任务的目标任务标识信息。
由于目标应用标识信息与目标应用对应目标任务的目标任务标识信息是关联存储的,在一种可能的实施方式中,当应用开发人员需要对目标应用进行运行测试时,将目标应用标识信息输送给ftrace工具,ftrace工具根据目标应用标识信息从应用层生成的atrace文件中获取目标应用对应目标任务的目标任务标识信息,其中,atrace文件存储有终端内所有应用对应的任务标识信息。
在另一种可能的实施方式中,当应用开发人员需要对目标应用进行运行测试时,直接通过systrace文件获取目标应用对应目标任务的目标任务标识信息。
在一个示意性的例子中,atrace文件存储有终端内应用A、应用B和应用C的应用标识信息以及各个应用对应任务的任务标识信息。在上述示意性的例子中已指出了两种应用标识信息与任务标识信息的关联存储方式,在本申请实施例示出的示例中,采用标识号表示标识信息的方式且采用各个应用的应用标识号是对应任务标识号中共同部分的关联存储方式。如表一所示,依照应用运行的时间线排列,应用A包含T1(第一个任务)、T2、T3、T4和T5这五个任务,对应的任务标识号分别为101、102、103、104和105,应用A的应用标识号即为任务标志号的公共部分,即10。应用B和应用C的应用标识信息与对应的任务标识信息如表一所示,在此不再赘述。
进一步的,应用开发人员将应用B确定为目标应用,ftrace工具获取应用B的应用标识号(即20),并根据调度至内核层的atrace文件获取应用B对应的目标任务(即T1、T2、T3和T4),继而获取各个目标任务的任务标识号(即201、202、203和204);或者,应用开发人员将应用B确定为目标应用,直接通过systrace文件获取目标应用对应目标任务的目标任务标识信息。
表一
应用 | 应用标识号 | T1 | T2 | T3 | T4 | T5 |
应用A | 10 | 101 | 102 | 103 | 104 | 105 |
应用B | 20 | 201 | 202 | 203 | 204 | - |
应用C | 30 | 301 | 302 | 303 | - | - |
步骤404,根据目标任务标识信息,从内核信息中获取目标任务的目标内核信息。
通过ftrace工具生成的ftrace文件包含各个任务的内核信息,且各个任务附带有其对应的任务标识信息。因此,在一种可能的实施方式中,当确定出目标任务标识信息之后,从ftrace文件中获取目标任务的目标内核信息。
由于systrace文件包括有ftrace文件和atrace文件,因此,在另一种可能的实施方式中,当确定出目标任务标识信息之后,从systrace文件中获取目标任务的目标内核信息。
步骤405,根据目标内核信息确定待优化任务。
对于应用在开发阶段的运行测试而言,主要关注的测试部分即为应用对应任务的运行时间,若存在运行时间较长的任务,则该应用在不同终端处实际运行时,对终端的内核性能要求较高,终端未能满足该应用的整体运行要求,易在该终端处出现运行不流畅的情况。因此,在一种可能的实施方式中,内核信息包含各个任务的运行时间,应用开发人员在获取到各个任务的运行时间后,将运行时间较长的任务确定为待优化任务。
在一种可能的实施方式中,将运行时间超过第一阈值的目标任务确定为待优化任务。
示意性的,如图5的(a)所示,其示出了应用D对应任务的运行时间,其中,任务T0的运行时间为2.7365秒,任务T1的运行时间为2.2039秒……,应用开发人员将第一阈值设置为2秒,因此,运行时间超过该第一阈值的任务为任务T0和任务T1,继而在应用D对应的目标任务中,将任务T0和任务T1确定为待优化任务。
示意性的,又如图5的(b)所示,其示出了应用E对应任务的运行时间。相较于应用D对应任务的运行时间而言,应用E对应任务的运行时间均处于较高的时长,因此,若根据第一阈值评判标准确定待优化任务的话,需要将应用E对应的大多数任务确定为待优化任务,实际上较多的待优化任务对于终端的运算是有一定压力的,容易出现终端无法对较多的待优化任务提供充足的内核资源去进行优化相关的运算。
因此,对于目标应用对应的目标任务的运算时间均较长的情况,在另一种可能的实施方式中,将第一任务比例下的目标任务确定为待优化任务。如,图5的(b)所示,应用开发人员将第一任务比例设置35%,由于应用E一共包含有12个任务,因此,在第一任务比例下,仅将12个任务中的4个任务确定为待优化任务,即T0、T1、T2和T3。
步骤406,根据待优化任务生成主任务组。
基于上述根据目标内核信息确定待优化任务的各个方法,能够从多个目标任务中确定出满足待优化要求的待优化任务,继而生成主任务组。
在一种可能的实施方式中,应用开发人员将各个应用的主任务组标记在应用软件安装包内,当各个终端用户安装应用软件安装包后,对应应用在终端内的运行过程中,终端对开发阶段标记的主任务组包括的各个待优化任务进行运行优化。
步骤407,将主任务组中的各个待优化任务分配至目标核心运行。
在一种可能的实施方式中,将主任务组中的各个待优化任务分配至目标核心运行。其中,目标核心的处理性能高于终端中其它核心的处理性能。
在一个示意性的例子中,终端内将提供2个大核和4个小核,大核为高功率核心,小核为低功率核心,其中,大核的处理速度优于小核。
因此,对于上述示意性的例子,终端安装目标应用,并在运行目标应用时,将该目标应用对应的主任务组中的各个待优化任务分配至大核运行。
然而,存在如下一种可能的情况,终端的各个目标核心的内核资源均已被占用,或不足以为各个待优化任务提供运行所需的内核资源。
对于上述存在的情况,在一种可能的实施方式中,将当前运行于目标核心的非待优化任务切换至非目标核心继续运行,使得终端的目标核心能够为主任务组中的各个待优化任务能够提供运行所需的内核资源。
示意性的,如图6的所示,图6示出了应用E基于主任务组的优化前后任务运行时间对比图,其中,横坐标为运行时间,纵坐标为处于各个运行时间上所占的任务比例。如图6的(a)所示,在应用D未对主任务组中各个待优化任务进行优化前,任务运行时间最长达到40毫秒,如图6的(b)所示,在应用D对主任务组中各个待优化任务进行优化后,任务运行时间最长仅为20毫秒。优化效果较为明显。
示意性的,如图7的所示,图7示出了应用E基于主任务组的优化前后任务概率累计对比图,其中,横坐标为运行时间,纵坐标为处于各个运行时间上的任务累积概率。如图7的(a)所示,在应用D未对主任务组中各个待优化任务进行优化前,95%的任务运行时间处于15毫秒左右,如图7的(b)所示,在应用D对主任务组中各个待优化任务进行优化后,95%的任务运行时间处于7.5毫秒左右。优化效果较为明显。
综上所述,本申请实施例中,systrace文件中包括应用信息和内核信息,应用信息包含应用标识信息和任务标识信息。应该开发人员在应用开发阶段基于不同终端对应用进行运行测试,并利用ftrace工具根据目标应用标识信息从任务标识信息中获取目标应用对应目标任务的目标任务标识信息,从而根据目标任务标识信息从内核信息中获取目标任务的目标内核信息,最终应用开发人员根据目标内核信息确定出待优化任务,使得不同终端将该应用对应的主任务组中的各个待优化任务进行运行优化;当应用出现运行不流畅问题时,相较于相关技术中仅能够对整体的系统性能进行提升的方案,通过本申请实施例提供的技术方案能够通过ftrace工具或者systrace文件进行应用级别的任务筛选,使得应用在开发阶段就确定出运行时间较长的任务,即运行时所需内核资源较多的任务,使得不同终端在运行该应用时,能够通过优化该应用对应的各个待优化任务,避免了应用在终端内出现运行不流畅的情况,从而提高应用的运行性能以及系统的运行速度。
在上述实施例中,公开了两种根据目标内核信息确定待优化任务的方式,从而根据所确定的待优化任务生成主任务组,这是一种应用开发阶段的主任务组生成过程。然而,应用在各个终端内进行实际运行时,还可以根据实际运行情况确定实时的主任务组。
如在应用的实际运行过程中,存在部分任务的等待运行时间过长,即使该任务并非为应用开发阶段生成的主任务组中的待优化任务,但若该任务一直继续等待,且在较长时间内未进入运行状态,则会导致整个应用的运行状态不良,如应用界面掉帧或显示卡顿等。
请参考图8,其示出了本申请另一个示例性实施例示出的任务运行优化方法的流程图,该方法包括:
步骤801,获取systrace文件,systrace文件中包括应用信息和内核信息,应用信息包含应用标识信息和任务标识信息。
本步骤的部分内容请参考步骤401,本申请实施例在此不再赘述。
步骤802,获取目标应用的目标应用标识信息。
本步骤的部分内容请参考步骤402,本申请实施例在此不再赘述。
步骤803,根据目标应用标识信息,从任务标识信息中获取目标应用对应目标任务的目标任务标识信息。
本步骤的部分内容请参考步骤403,本申请实施例在此不再赘述。
步骤804,根据目标任务标识信息,从内核信息中获取目标任务的目标内核信息。
本步骤的部分内容请参考步骤404,本申请实施例在此不再赘述。
步骤805,获取各个目标任务的状态信息。
在本申请实施例中,内核信息包含各个任务的状态信息,状态信息包含状态类型和状态持续时长。各个应用包括的任务在内核中的状态类型主要包括可运行runnable状态、运行running状态和睡眠sleeping状态。
在一个示意性的例子中,应用A包括有10个任务,其中任务1至任务3处于running状态,即正在内核层运行,而任务4至任务10处于runnable状态,即正在待运行队列中等待运行。其中,任务4至任务7处于runnable状态的状态持续时长为2秒,而任务8至任务10处于runnable状态的状态持续时长长达5秒,显然对于5秒的状态持续时长而言,是用户可感知的运行缓慢特征,若任务8至任务10继续处于runnable状态,则会极大地影响应用的流畅使用。
相应的,为了解决上述问题,在一种可能的实施方式中,步骤805至步骤807提供了另一种根据目标内核信息确定待优化任务的方式。
步骤806,当状态信息指示目标任务所处状态属于预设状态类型时,获取目标任务在预设状态类型下的状态持续时长。
为了解决上述问题,将runnable状态设置为预设状态类型,当存在目标任务处于预设状态类型时,终端获取该目标任务在预设状态类型下的状态持续时长。
在一种可能的实施方式中,内核层包括有用于监督各个任务状态的进程调度器,进程调度器可以提取每个任务处于各个状态类型下的状态持续时长。当任务进入某一状态类型时,进程调度器实时地添加状态开始标签,当任务进入另一状态类型时,进程调度器实时地添加对上一状态类型的状态结束标签以及下一状态类型的状态开始标签。进一步的,基于进程调度器的状态监控,内核层的ftrace工具能够获取各个任务的运行情况。
步骤807,将状态持续时长超过第二阈值的目标任务确定为待优化任务。
在应用运行过程中,内核资源是有限的,终端无法让该应用对应的所有任务均处于running状态,进而很大程度上会使得部分任务的等待运行时间过长,即存在部分任务处于runnable状态的状态持续时长较长。
因此,为了监控长时间处于runnable状态的任务,在一种可能的实施方式中,将状态持续时长超过第二阈值的目标任务确定为待优化任务,其中,第二阈值是基于预设状态类型设置的。
在一个示意性的例子中,预设状态类型为runnable状态,设置第二阈值为4s。对于步骤805中提及的应用A而言,任务8至任务10处于runnable状态的状态持续时长长达5秒,即任务8至任务10基于预设状态类型的状态持续时长超过了第二阈值,因此,终端将状态持续时长超过第二阈值的任务8至任务10确定为待优化任务。
步骤808,根据待优化任务生成主任务组。
基于上述步骤805至步骤807提供的另一种根据目标内核信息确定待优化任务的方式,能够从多个目标任务中确定出满足待优化要求的待优化任务,继而生成主任务组。
可选的本申请实施例中的主任务组是与上述各个实施例中的主任务组不同的。上述各个实施例中的主任务组是应用开发人员在应用开发阶段提前固设好的主任务组;而本申请实施例中的主任务组是应用在实际的终端运行过程中根据实际的运行情况生成的,使得基于本申请实施例提供的技术方案,终端能够根据实际的应用运行情况,自动设置待优化的主任务组,从而更好地提高终端系统的运行性能。
步骤809,将主任务组中处于runnable状态的待优化任务转换为运行running状态。
在一种可能的实施方式中,进程调度器不仅用于监督各个任务的运行状态,还可以执行任务的状态类型转换,即将任务的当前状态类型转换至另一状态类型。
相应的,通过上述步骤确定出主任务组后,终端通过进程调度器将主任务组中处于runnable状态的待优化任务转换为运行running状态,使得等待运行时间较长的任务能够及时地被运行,一定程度上保障了应用运行的流畅性。
综上所述,本申请实施例提供了另一种根据目标内核信息确定待优化任务的方式,即根据目标任务在预设状态类型下的状态持续时长来确定待优化任务;实现了应用在各个终端内实际运行时,能够根据实际运行情况确定实时的主任务组,避免存在部分任务的等待运行时间较长、导致应用的运行状态不良的问题,一定程度上保障了应用运行的流畅性。
请参考图9,其示出了本申请一个实施例提供的任务运行优化装置的结构框图,该装置包括:
文件获取模块901,用于获取systrace文件,所述systrace文件中包括应用信息和内核信息,所述应用信息用于指示应用与任务之间的关联关系,所述内核信息用于指示所述任务在内核中的运行情况;
主任务组生成模块902,用于根据所述应用信息和所述内核信息生成主任务组,所述主任务组中包含至少一个待优化任务;
运行优化模块903,用于对所述主任务组中的各个待优化任务进行运行优化。
可选的,所述装置还包括:
第一文件生成模块,用于通过atrace工具生成atrace文件,所述atrace文件包含各个应用的应用信息,所述atrace工具运行在安卓应用层;
第二文件生成模块,用于通过ftrace工具生成ftrace文件,所述ftrace文件包含各个任务的内核信息,所述ftrace工具运行在内核层;
第三文件生成模块,用于根据所述ftrace文件和所述atrace文件生成所述systrace文件。
可选的,所述应用信息包含应用标识信息和任务标识信息;
可选的,所述主任务组生成模块902,包括:
第一信息获取子模块,用于获取目标应用的目标应用标识信息;
第二信息获取子模块,用于根据所述目标应用标识信息,从所述任务标识信息中获取所述目标应用对应目标任务的目标任务标识信息;
第三信息获取子模块,用于根据所述目标任务标识信息,从所述内核信息中获取所述目标任务的目标内核信息;
第一任务确定子模块,用于根据所述目标内核信息确定所述待优化任务;
主任务组生成子模块,用于根据所述待优化任务生成所述主任务组。
可选的,所述内核信息包含所述各个任务的运行时间;
可选的,所述第一任务确定子模块,用于将所述运行时间超过第一阈值的所述目标任务确定为待优化任务。
可选的,所述运行优化模块903,包括:
第一运行优化子模块,用于将所述主任务组中的各个任务分配至目标核心运行,所述目标核心的处理性能高于终端中其它核心的处理性能。
可选的,所述内核信息包含各个任务的状态信息,所述状态信息包含状态类型和状态持续时长;
可选的,所述第一任务确定子模块,用于获取各个所述目标任务的所述状态信息;
当所述状态信息指示所述目标任务所处状态属于预设状态类型时,获取所述目标任务在所述预设状态类型下的所述状态持续时长;
将所述状态持续时长超过第二阈值的目标任务确定为所述待优化任务。
可选的,所述预设状态类型为可运行runnable状态,所述运行优化模块903,包括:
第二运行优化子模块,用于将所述主任务组中处于所述runnable状态的所述待优化任务转换为运行running状态。
请参考图10,其示出了本申请一个示例性实施例提供的终端1000的结构方框图。该终端1000可以是智能手机、平板电脑、电子书、便携式个人计算机等安装并运行有应用程序的电子设备。本申请中的终端1000可以包括一个或多个如下部件:处理器1010、存储器1020和屏幕1030。
处理器1010可以包括一个或者多个处理核心。处理器1010利用各种接口和线路连接整个终端1000内的各个部分,通过运行或执行存储在存储器1020内的指令、程序、代码集或指令集,以及调用存储在存储器1020内的数据,执行终端1000的各种功能和处理数据。可选地,处理器1010可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器1010可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责屏幕1030所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1010中,单独通过一块通信芯片进行实现。
存储器1020可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选地,该存储器1020包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1020可用于存储指令、程序、代码、代码集或指令集。存储器1020可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等,该操作系统可以是安卓(Android)系统(包括基于Android系统深度开发的系统)、苹果公司开发的IOS系统(包括基于IOS系统深度开发的系统)或其它系统。存储数据区还可以存储终端1000在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
屏幕1030可以为触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端1000的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的任务运行优化方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的任务运行优化方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种任务运行优化方法,其特征在于,所述方法包括:
获取系统追踪systrace文件,所述systrace文件中包括应用信息和内核信息,所述应用信息用于指示应用与任务之间的关联关系,所述应用信息包含应用标识信息和任务标识信息,所述内核信息用于指示所述任务在内核中的运行情况;
获取目标应用的目标应用标识信息;
根据所述目标应用标识信息,从所述任务标识信息中获取所述目标应用对应目标任务的目标任务标识信息;
根据所述目标任务标识信息,从所述内核信息中获取所述目标任务的目标内核信息;
根据所述目标内核信息确定所述目标应用的待优化任务;
根据所述待优化任务生成主任务组;
对所述主任务组中的各个待优化任务进行运行优化。
2.根据权利要求1所述的方法,其特征在于,所述获取系统追踪systrace文件之前,所述方法还包括:
通过安卓追踪atrace工具生成atrace文件,所述atrace文件包含各个应用的应用信息,所述atrace工具运行在安卓应用层;
通过函数追踪ftrace工具生成ftrace文件,所述ftrace文件包含各个任务的内核信息,所述ftrace工具运行在内核层;
根据所述ftrace文件和所述atrace文件生成所述systrace文件。
3.根据权利要求1所述的方法,其特征在于,所述内核信息包含各个任务的运行时间;
所述根据所述目标内核信息确定所述目标应用的待优化任务,包括:
将所述运行时间超过第一阈值的所述目标任务确定为待优化任务。
4.根据权利要求3所述的方法,其特征在于,所述对所述主任务组中的各个待优化任务进行运行优化,包括:
将所述主任务组中的各个待优化任务分配至目标核心运行,所述目标核心的处理性能高于终端中其它核心的处理性能。
5.根据权利要求1所述的方法,其特征在于,所述内核信息包含各个任务的状态信息,所述状态信息包含状态类型和状态持续时长;
所述根据所述目标内核信息确定所述目标应用的待优化任务,包括:
获取各个所述目标任务的所述状态信息;
当所述状态信息指示所述目标任务所处状态属于预设状态类型时,获取所述目标任务在所述预设状态类型下的所述状态持续时长;
将所述状态持续时长超过第二阈值的目标任务确定为所述待优化任务。
6.根据权利要求5所述的方法,其特征在于,所述预设状态类型为可运行runnable状态,所述对所述主任务组中的各个待优化任务进行运行优化,包括:
将所述主任务组中处于所述runnable状态的所述待优化任务转换为运行running状态。
7.一种任务运行优化装置,其特征在于,所述装置包括:
文件获取模块,用于获取systrace文件,所述systrace文件中包括应用信息和内核信息,所述应用信息用于指示应用与任务之间的关联关系,所述应用信息包含应用标识信息和任务标识信息,所述内核信息用于指示所述任务在内核中的运行情况;
主任务组生成模块,用于获取目标应用的目标应用标识信息;
根据所述目标应用标识信息,从所述任务标识信息中获取所述目标应用对应目标任务的目标任务标识信息;
根据所述目标任务标识信息,从所述内核信息中获取所述目标任务的目标内核信息;
根据所述目标内核信息确定所述目标应用的待优化任务;
根据所述待优化任务生成主任务组;
运行优化模块,用于对所述主任务组中的各个待优化任务进行运行优化。
8.一种用于任务运行优化的终端,其特征在于,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如权利要求1至6任一所述的任务运行优化方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如权利要求1至6任一所述的任务运行优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910988110.6A CN110750346B (zh) | 2019-10-17 | 2019-10-17 | 任务运行优化方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910988110.6A CN110750346B (zh) | 2019-10-17 | 2019-10-17 | 任务运行优化方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110750346A CN110750346A (zh) | 2020-02-04 |
CN110750346B true CN110750346B (zh) | 2022-11-15 |
Family
ID=69278674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910988110.6A Active CN110750346B (zh) | 2019-10-17 | 2019-10-17 | 任务运行优化方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110750346B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767123B (zh) * | 2020-05-07 | 2023-09-01 | 北京奇艺世纪科技有限公司 | 运行优化方法及装置 |
CN114462026B (zh) * | 2021-12-31 | 2022-11-18 | 北京亿赛通科技发展有限责任公司 | 密文进程监控方法、装置、设备及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0518573A2 (en) * | 1991-06-10 | 1992-12-16 | International Business Machines Corporation | Capturing and reducing resource data in a data processing system |
JP2008225717A (ja) * | 2007-03-12 | 2008-09-25 | Nec Corp | カーネル起動方法、カーネルソースコード最適化方法、カーネルソースコード最適化装置及びプログラム |
CN101996101A (zh) * | 2009-08-13 | 2011-03-30 | 北京搜狗科技发展有限公司 | 应用程序性能优化方法及装置 |
CN104503831A (zh) * | 2014-12-22 | 2015-04-08 | 北京奇虎科技有限公司 | 设备优化方法及装置 |
CN106445661A (zh) * | 2016-09-13 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种动态优化方法及系统 |
CN108763012A (zh) * | 2018-03-13 | 2018-11-06 | 广东欧珀移动通信有限公司 | 卡顿信息获取方法、装置及终端 |
CN109426603A (zh) * | 2017-08-21 | 2019-03-05 | 北京京东尚科信息技术有限公司 | 一种分析应用程序卡顿的方法和装置 |
CN109783158A (zh) * | 2019-01-14 | 2019-05-21 | 深圳市脸萌科技有限公司 | 应用启动任务处理方法及装置 |
-
2019
- 2019-10-17 CN CN201910988110.6A patent/CN110750346B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0518573A2 (en) * | 1991-06-10 | 1992-12-16 | International Business Machines Corporation | Capturing and reducing resource data in a data processing system |
JP2008225717A (ja) * | 2007-03-12 | 2008-09-25 | Nec Corp | カーネル起動方法、カーネルソースコード最適化方法、カーネルソースコード最適化装置及びプログラム |
CN101996101A (zh) * | 2009-08-13 | 2011-03-30 | 北京搜狗科技发展有限公司 | 应用程序性能优化方法及装置 |
CN104503831A (zh) * | 2014-12-22 | 2015-04-08 | 北京奇虎科技有限公司 | 设备优化方法及装置 |
CN106445661A (zh) * | 2016-09-13 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种动态优化方法及系统 |
CN109426603A (zh) * | 2017-08-21 | 2019-03-05 | 北京京东尚科信息技术有限公司 | 一种分析应用程序卡顿的方法和装置 |
CN108763012A (zh) * | 2018-03-13 | 2018-11-06 | 广东欧珀移动通信有限公司 | 卡顿信息获取方法、装置及终端 |
CN109783158A (zh) * | 2019-01-14 | 2019-05-21 | 深圳市脸萌科技有限公司 | 应用启动任务处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
Android性能优化工具之Systrace;developer_Kale;《博客园》;20150131;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110750346A (zh) | 2020-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10067790B2 (en) | Method and apparatus for displaying information to a user and the user optimizing running of the processes | |
CN109857556B (zh) | 内存回收方法及装置、存储介质和电子设备 | |
CN110750346B (zh) | 任务运行优化方法、装置、终端及存储介质 | |
CN110780879B (zh) | 一种基于智能编译技术的决策执行方法、装置、设备及介质 | |
CN110287146B (zh) | 应用下载的方法、设备和计算机存储介质 | |
CN110941553A (zh) | 一种代码检测方法、装置、设备及可读存储介质 | |
CN106020984A (zh) | 电子设备中进程的创建方法及装置 | |
CN111831411A (zh) | 任务处理方法、装置、存储介质及电子设备 | |
CN110888628A (zh) | 生成控制工具的方法、装置、设备和存储介质 | |
CN111831432B (zh) | Io请求的调度方法、装置、存储介质及电子设备 | |
CN113127050A (zh) | 一种应用资源打包过程监控方法、装置、设备和介质 | |
CN112749062A (zh) | 服务端程序监控方法、装置、计算机设备及存储介质 | |
CN111831439A (zh) | Io请求的处理方法、装置、存储介质及电子设备 | |
CN111625350A (zh) | 网络消息数据的内存分配方法、装置、设备及存储介质 | |
EP4354293A1 (en) | Detection method and apparatus, and electronic device | |
CN109901831A (zh) | 软件的多平台兼容运行方法及兼容运行装置 | |
CN112463626B (zh) | 内存泄漏定位方法、装置、计算机设备及存储介质 | |
CN111741046B (zh) | 数据上报方法、获取方法、装置、设备及介质 | |
CN113742501A (zh) | 一种信息提取方法、装置、设备、及介质 | |
CN112783574A (zh) | 应用程序开发方法、装置、设备和存储介质 | |
US8495033B2 (en) | Data processing | |
CN110716908A (zh) | 日志信息写入方法、系统、存储介质及移动终端 | |
CN113127001B (zh) | 一种代码编译过程监控方法、装置、设备和介质 | |
CN113722231B (zh) | 用户操作的模拟方法、装置、电子设备及存储介质 | |
CN113778711B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |