CN111381953A - 进程管理方法、装置、存储介质及电子设备 - Google Patents

进程管理方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN111381953A
CN111381953A CN202010197116.4A CN202010197116A CN111381953A CN 111381953 A CN111381953 A CN 111381953A CN 202010197116 A CN202010197116 A CN 202010197116A CN 111381953 A CN111381953 A CN 111381953A
Authority
CN
China
Prior art keywords
target
starting times
preset
running state
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.)
Granted
Application number
CN202010197116.4A
Other languages
English (en)
Other versions
CN111381953B (zh
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010197116.4A priority Critical patent/CN111381953B/zh
Publication of CN111381953A publication Critical patent/CN111381953A/zh
Application granted granted Critical
Publication of CN111381953B publication Critical patent/CN111381953B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

本申请实施例公开了一种进程管理方法、装置、存储介质及电子设备,其中,本申请实施例当需要关闭进程时,确定所述电子设备中处于运行状态的进程;获取每一处于所述运行状态的进程的历史启动次数;将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;关闭所述第一目标进程。基于此,在需要进行关闭进程时,综合处于运行状态的进程的级别以及其历史启动次数来确定选择哪些进程进行关闭,以提高内存回收的有效性。

Description

进程管理方法、装置、存储介质及电子设备
技术领域
本申请涉及终端技术领域,具体涉及一种进程管理方法、装置、存储介质及电子设备。
背景技术
内存管理是系统的核心技术之一,对提高系统的用户体验和系统运行的稳定性具有关键作用。当内存紧张时,系统会出现卡顿、运行出错、崩溃等一系列问题。相关技术中,为了缓解内存紧张的问题,常常使用关闭运行中的进程的方式释放内存,但是相关技术中缺乏合理的进程管理机制,导致内存回收的有效性低。
发明内容
本申请实施例提供一种进程管理方法、装置、存储介质及电子设备,能够提高内存回收的有效性。
第一方面,本申请实施例提供一种进程管理方法,包括:
当需要关闭进程时,确定所述电子设备中处于运行状态的进程;
获取每一处于所述运行状态的进程的历史启动次数;
将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;
获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;
关闭所述第一目标进程。
第二方面,本申请实施例还提供一种进程管理装置,包括:
状态确定单元,用于当需要关闭进程时,确定所述电子设备中处于运行状态的进程;
次数统计单元,用于获取每一处于所述运行状态的进程的历史启动次数;
进程选择单元,用于将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;
以及,获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;
进程管理单元,用于关闭所述第一目标进程。
第三方面,本申请实施例还提供一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本申请任一实施例提供的进程管理方法。
第四方面,本申请实施例还提供一种电子设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本申请任一实施例提供的进程管理方法。
本申请实施例提供的技术方案,当需要关闭进程时,确定所述电子设备中处于运行状态的进程;获取每一处于所述运行状态的进程的历史启动次数;将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;关闭所述第一目标进程。通过这种方式,在需要进行关闭进程时,综合处于运行状态的进程的级别以及其历史启动次数,选择级别高同时启动次数少的进程进行关闭,能够避免为了内存回收,而将一些需要频繁启动的进程关闭,进而避免了进程被关闭后又在短时间内被启动而导致的内存回收无效,以提高内存回收的有效性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的进程管理方法的第一种流程示意图。
图2为本申请实施例提供的进程管理方法的第二种流程示意图。
图3为本申请实施例提供的进程管理装置的结构示意图。
图4为本申请实施例提供的电子设备的第一种结构示意图。
图5为本申请实施例提供的电子设备的第二种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请的保护范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例提供一种进程管理方法,该进程管理方法的执行主体可以是本申请实施例提供的进程管理装置,或者集成了该进程管理装置的电子设备,其中该进程管理装置可以采用硬件或者软件的方式实现。其中,电子设备可以是智能手机、平板电脑、掌上电脑、笔记本电脑、或者台式电脑等设备。
请参阅图1,图1为本申请实施例提供的进程管理方法的第一种流程示意图。本申请实施例提供的进程管理方法的具体流程可以如下:
101、当需要关闭进程时,确定所述电子设备中处于运行状态的进程。
电子设备的系统和应用程序的进程的运行,都需要系统内核为其分配内存空间。当内存空间不足时,系统内核会进行内存回收,例如,通过释放内存页面、内存压缩,关闭进程等。例如,当接收到进程发送的内存分配请求时,若检测到剩余空间不足,可以采用上述方式进行内存回收。如果当前的内存回收机制包括关闭进程,则当检测到空闲内存空间小于预设内存阈值时,判定需要关闭进程。
其中,对于关闭进程的回收内存方式,会从处于运行状态的全部进程中选择目标进程作为关闭的对象。
102、获取每一处于所述运行状态的进程的历史启动次数。
103、将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程。
如果一个进程是系统频繁使用的,进程被杀后可能重新被创建,创建后又占用了上次杀该进程释放的内存,这相当于上次查杀没有起到释放内存的作用,导致这次内存回收操作是一次无效的操作。并且,如果一个进程频繁的被启动,有可能代表着用户经常使用该应用,所以杀死用户经常使用的应用进程,也会带来不好的用户体验。
本申请实施例中,在选择要作为内存回收对象进行关闭的进程时,先将那些可能频繁启动的进程排除掉。
该实施例中,通过对进程的启动情况进程记录。当检测到有进程启动时,获取当前的时间信息;根据启动的进程的名称以及所述时间信息,更新所述启动的进程对应的启动记录;所述获取每一处于所述运行状态的进程的历史启动次数,包括:获取每一处于所述运行状态的进程的启动记录,并根据对应的所述启动记录获取所述每一处于所述运行状态的进程的历史启动次数。
例如,每次检测到有进程启动时,获取启动的该进程的名称,并记录启动时间。这样经过一段时间后,可以根据记录的进程名称与对应的时间信息,统计进程在一段时间内的启动次数。
需要说明的是,一些相关联的进程的名字的前多个字符可能是完全相同的,但是后面字符有差异。因此,为了区分不同的进程,在记录进程的名字时,需要记录进程的名字的全称。
那些启动频繁的进程的启动次数会明显多于启动不频繁的进程的启动次数。因此,为了避免进程被关闭后又在短时间内被启动而导致的内存回收无效,对于历史启动次数大于预设启动次数的进程,及时他们具有更高的优先级,也暂不进行关闭,而是选择那些历史启动次数不大于预设启动次数的进程,作为候选进程。
104、获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程。
105、关闭所述第一目标进程。
一般情况下,在选择进程时,会根据进程的重要程度选择要关闭的进程,本申请实施例中通过为进程设置进程级别来表示进程的重要程度。
需要说明的是,本申请实施例中的进程可以是系统进程,也可以是应用程序进程。
电子设备按照阈值定义的级别设置规则为这些进程设置级别。例如,可以将进程级别的取值范围设置为[-100,100],其中,按照如下规则设置进程的级别:①进程的级别越小,则重要程度越高,被回收的可能性越低,级别越小,越容易被为进程关闭的对象。②大部分系统进程的级别小于1,小部分不太重要的系统进程的级别可以大于1,例如,一些后台服务进程。③应用程序的进程一般大于或等于1,例如,应用程序的进程可以为10、20、40、90等等。④进程在运行过程中,其级别并不是一成不变的,而是会随着运行状态的变化以及用户对该进程的使用情况而发生变化。一般情况下,运行在前台的应用程序的级别为0,0为应用程序的进程的最低级别,该应用程序被切换到后台后,其进程的级别会增大。例如,一进程由前台切换到后台之后,其重要程度相对于运行在前台时会有所降低,因此,其级别会身高,比如,由0变为10,然后随着该应用程序在后台停留的时间越久,则可能级别会越来越高,直至达到最高级别100。如果该应用程序在后台停留一段时间之后,又被切换到了前台运行,则该应用程序的进程的级别又会降低为0。以微信为例,用户开启微信在前台使用时,微信的进程的级别为0,当微信被切换到后台运行时,其进程的级别会被降低。
其中,关于进程被切换到后台运行之后,其级别增大的方式可以有多种,例如,随着该应用程序在后台停留的时间,从1-100线性增大。或者,每间隔10分钟,增大30-50等等,具体的调整方式可以根据需要设置。
进一步的,为了提升用户体验,对于一些与用户体验相关的应用程序来说,即使被切换到后台,为了保持用户能够继续使用该进程,尽量避免该进程不被关闭,因此,对于这些应用程序来说,可以按照较小的幅度减小应用程序中与用户体验相关的进程的级别。例如,用户将音乐播放程序切换到后台之后,仍然继续播放音乐,可以按照较小的幅度减小应用程序中与音乐播放相关的进程的级别。
在得到候选进程的级别后,根据进程的级别从候选进程中确定出满足预设条件的进程,进行关闭。例如,可以从这些候选进程中选择出级别最高的一个或者多个进程,作为满足预设条件的进程,进行关闭。其中,在一些实施例中,可以根据需要回收的内存需求量的大小确定需要关闭的进程的数量,内存需求量越大,则需要关闭的进程的数量越多。
例如,所述根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程,包括:将所述候选进程中级别最高的一个进程,作为第一目标进程。电子设备中当前处于运行状态的进程包括:进程1、进程2、进程3、进程4、进程5、进程6。这6个进程的级别依次为0、16、36、48、60、74。其中,进程6的启动次数大于预设启动次数,排除进程6。剩余的5个进程中级别最高的进程为进程5。则可以将进程5作为目标进程,关闭进程5,以释放进程5所占用的内存空间。
例如,在一些实施例中,所述将所述候选进程中级别最高的一个进程,作为第一目标进程,包括:从所述候选进程中确定出级别最高的第二目标进程;当所述第二目标进程有一个时,将所述第二目标进程作为第一目标进程;当所述第二目标进程有多个时,确定每一所述第二目标进程所占用的内存量,将占用的内存量最大的一个第二目标进程作为第一目标进程。
可以理解的是,在一些情况下,可能一些进程的级别是相同的。比如,电子设备中当前处于运行状态的进程包括:进程1、进程2、进程3、进程4、进程5、进程6。这6个进程的级别依次为0、16、36、60、60、74。其中,进程6的启动次数大于预设启动次数,排除进程6。剩余的5个进程中级别最高的进程为进程5和进程4,也就是说,进程4和进程5均为第二目标进程,此时如果只选择一个进程进行关闭,则可以对进程4和进程5所占用的内存量进行判断,将占用内存量最大的那一个进程进行关闭。当然,如果确定出的第二目标进程只有一个,则将这一个第二目标进程进行关闭。
具体实施时,本申请不受所描述的各个步骤的执行顺序的限制,在不产生冲突的情况下,某些步骤还可以采用其它顺序进行或者同时进行。
由上可知,本申请实施例提供的进程管理方法,当需要关闭进程时,确定所述电子设备中处于运行状态的进程;获取每一处于所述运行状态的进程的历史启动次数;将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;关闭所述第一目标进程。通过这种方式,在需要进行关闭进程时,综合处于运行状态的进程的级别以及其历史启动次数,选择级别高同时启动次数少的进程进行关闭,能够避免为了内存回收,而将一些需要频繁启动的进程关闭,进而避免了进程被关闭后又在短时间内被启动而导致的内存回收无效,以提高内存回收的有效性。
在一些实施例中,在确定所述电子设备中处于运行状态的进程之前,该方法还可以包括:当检测到空闲内存空间小于预设内存阈值时,判定需要关闭进程。关闭所述第一目标进程之后,还包括:将所述第一目标进程从所述候选进程中删除,并检测空闲内存空间是否小于所述预设内存阈值;若是,则基于删除操作后的候选进程,返回执行根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程。
该实施例中,内核可以在接收到内存分配请求时或者间隔性地,对空闲内存空间进行检测,当检测到空闲内存空间小于预设内存阈值时,判定需要关闭进程以释放内存空间。并且,在根据进程的历史启动次数确定出候选进程后,将候选进程中级别最高的一个进程作为第一目标进程进行关闭,在关闭该第一目标进程之后,将关闭的进程从候选进程中删除,并再次对空闲内存空间的大小进行检测,如果空闲内存空间的大小仍然预设内存阈值,则再从剩余的候选进程中确定出一个级别最高的进程作为第一目标进程进行关闭,如此循环往复,直至空闲内存空间的大小不小于预设内存阈值。
或者,在一些实施例中,在确定所述电子设备中处于运行状态的进程之前,还包括:当检测到空闲内存空间小于预设内存阈值时,判定需要关闭进程,并根据所述空闲内存空间和所述预设内存阈值确定目标内存量。所述根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程,包括:将所述候选进程按照级别由高至低的顺序构成进程链表;按照所述级别由高至低的顺序,遍历所述进程链表,直至遍历到的一个或多个候选进程占用的内存量大于所述目标内存量;将遍历到的所述一个或多个候选进程作为第一目标进程。
该实施例中,内核可以在接收到内存分配请求时或者间隔性地,对空闲内存空间进行检测,当检测到空闲内存空间小于预设内存阈值时,判定需要关闭进程以释放内存空间,同时根据空闲内存空间的大小和预设内存阈值的大小,计算出目标内存量,该目标内存量为需要释放的内存空间的大小。例如,预设内存阈值为800M,当前的空闲内存空间的大小为200M,则需要释放的目标内存量的大小为600M。
在确定出候选进程之后,将候选进程按照级别由高至低的顺序构成进程链表。然后,按照级别由高至低的顺序,遍历所述进程链表,例如,候选进程有如下5个,进程1、进程2、进程3、进程4、进程5。这5个进程的级别依次为0、16、36、48、60、74。则按照级别由高至低的顺序排列,可构成如下进程链表:进程5-进程4-进程3-进程2-进程1。从进程5开始遍历该链表,直至遍历到的一个或多个候选进程占用的内存量大于目标内存量600M。例如,进程5占用的内存量为300M,进程4占用的内存量为400M,进程4占用的内存量为200M,……。当遍历到进程4的时候,可以发现已经遍历的进程5和进程4所占用的内存量之和已经大于目标内存量600M。此时可以终止遍历,将进程5和进程4作为第一目标进程。
在一些实施例中,所述获取每一处于所述运行状态的进程的历史启动次数,包括:获取每一处于所述运行状态的进程在预设历史时间区间内的历史启动次数。
由于一些进程可能在系统启动初期会被频繁启动,但是后续较少被启动。因此,为了避免将该进程总是从候选进程中被排除掉,在获取进程的启动次数时,只获取一段历史时间内的历史启动次数。以提高内存回收的合理性。例如,获取进程在过去一个小时内的历史启动次数。
或者,在另外一些实施例中,将所述历史启动次数大于预设启动次数的进程,作为候选进程之后,还包括:根据所述预设启动次数对历史启动次数大于所述预设启动次数的进程的历史启动次数进行修改,以使修改后的历史启动次数等于修改前的历史启动次数与所述预设启动次数的差值。
通过这种方式,如果一个进程被排除过一次之后,则将其记录的历史启动次数减去预设启动次数,使其历史启动次数减小,则下次被排除的可能性降低。同样能够解决由于进程可能在系统启动初期会被频繁启动,但是后续较少被启动,而导致该进程总是从候选进程中被排除掉的问题。
根据前面实施例所描述的方法,以下将举例作进一步详细说明。
请参阅图2,图2为本发明实施例提供的进程管理方法的第二流程示意图。
所述方法包括:
201、当检测到空闲内存空间小于预设内存阈值时,确定所述电子设备中处于运行状态的进程。
电子设备的系统和应用程序的进程的运行,都需要系统内核为其分配内存空间。当内存空间不足时,系统内核会进行内存回收,例如,通过释放内存页面、内存压缩,关闭进程等。例如,当接收到进程或者线程发送的内存分配请求时,若检测到剩余空间不足,可以采用上述方式进行内存回收。其中,对于关闭进程的回收内存方式,会从处于运行状态的全部进程中选择目标进程作为关闭的对象。
需要说明的是,本申请实施例中的进程可以是系统进程,也可以是应用程序进程。
202、获取每一处于所述运行状态的进程的启动记录,并根据对应的所述启动记录获取所述每一处于所述运行状态的进程的历史启动次数。
每次检测到有进程启动时,获取启动的该进程的名称,并记录启动时间。这样经过一段时间后,可以根据记录的进程名称与对应的时间信息,统计进程在一段时间内的启动次数。由于一些进程可能在系统启动初期会被频繁启动,但是后续较少被启动。因此,为了避免将该进程总是从候选进程中被排除掉,在获取进程的启动次数时,只获取一段历史时间内的历史启动次数,以提高内存回收的合理性。
对于历史启动次数大于预设启动次数的进程,执行203;对于历史启动次数不大于预设启动次数的进程,执行204。
203、根据所述预设启动次数对历史启动次数大于所述预设启动次数的进程的历史启动次数进行修改,以使修改后的历史启动次数等于修改前的历史启动次数与所述预设启动次数的差值。
如果一个进程被排除过一次之后,则将其记录的历史启动次数减去预设启动次数,使其历史启动次数减小,则下次被排除的可能性降低。以解决由于进程可能在系统启动初期会被频繁启动,但是后续较少被启动,而导致该进程总是从候选进程中被排除掉的问题。
204、将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程。
205、从所述候选进程中确定出级别最高的第二目标进程.
当所述第二目标进程有一个时,执行206;当所述第二目标进程有多个时,执行207。
206、将所述第二目标进程作为第一目标进程。
207、确定每一所述第二目标进程所占用的内存量,将占用的内存量最大的第二预设数量的第二目标进程作为第一目标进程。
该实施例中,在进行内存回收时,一次只关闭一个进程。在选择进程时,会根据进程的重要程度选择要关闭的进程,本申请实施例中通过为进程设置进程级别来表示进程的重要程度。其中,关于进程的重要程度以及级别的设定,请参照上述实施例,在此不再赘述。
208、关闭所述第一目标进程。
在得到候选进程的级别后,从这些候选进程中选择出级别最高的一个进程进行关闭。由于候选进程中可能存在多个进程的级别相同的情况。因此,需要分情况确定第一目标进程。先将候选进程中级别最高的进程作为第二目标进程,再确定第二目标进程的数量。如果第二目标进程只有一个,则直接将该第二目标进程作为关闭对象。如果第二目标进程有多个,则再结合进程对内存的使用情况选择第一目标进程。例如,由于多个第二目标进程的级别相同,因此,无论关闭哪一个进程再进程的重要程度这一层面来说产生的影响差别不大。而关闭占用内存量大进程可以释放更多的内存空间。故,当第二目标进程有多个时,确定每一第二目标进程所占用的内存量,将占用的内存量最大的第二预设数量的第二目标进程作为第一目标进程。
由上可知,本发明实施例提出的进程管理方法,确定电子设备中处于运行状态的进程;获取每一处于运行状态的进程的历史启动次数,将历史启动次数大于预设启动次数的进程排除掉,将历史启动次数不大于预设启动次数的进程作为候选进程;从候选进程中确定出级别最高的进程作为第一目标进程;关闭第一目标进程。通过这种方式,在需要进行关闭进程时,综合处于运行状态的进程的级别以及其历史启动次数,选择级别高同时启动次数少的进程进行关闭,能够避免为了内存回收,而将一些需要频繁启动的进程关闭,进而避免了进程被关闭后又在短时间内被启动而导致的内存回收无效,提高了内存回收的有效性。
在一实施例中还提供一种进程管理装置。请参阅图3,图3为本申请实施例提供的进程管理装置300的结构示意图。其中该进程管理装置300应用于电子设备,该进程管理装置300包括状态确定单元301、次数统计单元302、进程选择单元303以及进程管理单元304,如下:
状态确定单元301,用于当需要关闭进程时,确定所述电子设备中处于运行状态的进程;
次数统计单元302,用于获取每一处于所述运行状态的进程的历史启动次数;
进程选择单元303,用于将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;
以及,获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;
进程管理单元304,用于关闭所述第一目标进程。
在一些实施例中,进程选择单元303还用于:将所述候选进程中级别最高的一个进程,作为第一目标进程
在一些实施例中,进程选择单元303还用于:
从所述候选进程中确定出级别最高的第二目标进程;
当所述第二目标进程有一个时,将所述第二目标进程作为第一目标进程;
当所述第二目标进程有多个时,确定每一所述第二目标进程所占用的内存量,将占用的内存量最大的一个第二目标进程作为第一目标进程。
在一些实施例中,状态确定单元301还用于:当检测到空闲内存空间小于预设内存阈值时,判定需要关闭进程;
进程管理单元304还用于:将所述第一目标进程从所述候选进程中删除;
进程选择单元303还用于:在所述进程管理单元304将所述第一目标进程从所述候选进程中删除之后,若空闲内存空间小于所述预设内存阈值,则基于删除操作后的候选进程,返回执行根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程。
在一些实施例中,状态确定单元301还用于:当检测到空闲内存空间小于预设内存阈值时,判定需要关闭进程,并根据所述空闲内存空间和所述预设内存阈值确定目标内存量;
进程选择单元303还用于:将所述候选进程按照级别由高至低的顺序构成进程链表;
按照所述级别由高至低的顺序,遍历所述进程链表,直至遍历到的一个或多个候选进程占用的内存量大于所述目标内存量;
将遍历到的所述一个或多个候选进程作为第一目标进程。
在一些实施例中,次数统计单元302还用于:
当检测到有进程启动时,获取当前的时间信息;
根据启动的进程的名称以及所述时间信息,更新所述启动的进程对应的启动记录;
获取每一处于所述运行状态的进程的启动记录,并根据对应的所述启动记录获取所述每一处于所述运行状态的进程的历史启动次数。
在一些实施例中,次数统计单元302还用于:
根据所述预设启动次数对历史启动次数大于所述预设启动次数的进程的历史启动次数进行修改,以使修改后的历史启动次数等于修改前的历史启动次数与所述预设启动次数的差值。
在一些实施例中,次数统计单元302还用于:
获取每一处于所述运行状态的进程在预设历史时间区间内的历史启动次数。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
应当说明的是,本申请实施例提供的进程管理装置与上文实施例中的进程管理方法属于同一构思,在进程管理装置上可以运行进程管理方法实施例中提供的任一方法,其具体实现过程详见进程管理方法实施例,此处不再赘述。
由上可知,本申请实施例提出的进程管理装置,该装置包括状态确定单元301、次数统计单元302、进程选择单元303以及进程管理单元304,当需要关闭进程时,状态确定单元301确定所述电子设备中处于运行状态的进程;次数统计单元302获取每一处于所述运行状态的进程的历史启动次数;进程选择单元303将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;进程管理单元304关闭所述第一目标进程。通过这种方式,在需要进行关闭进程时,综合处于运行状态的进程的级别以及其历史启动次数,选择级别高同时启动次数少的进程进行关闭,能够避免为了内存回收,而将一些需要频繁启动的进程关闭,进而避免了进程被关闭后又在短时间内被启动而导致的内存回收无效,以提高内存回收的有效性。
本申请实施例还提供一种电子设备。所述电子设备可以是智能手机、平板电脑等设备。请参阅图4,图4为本申请实施例提供的电子设备的第一种结构示意图。电子设备400包括处理器401和存储器402。其中,处理器401与存储器402电性连接。
处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或调用存储在存储器402内的计算机程序,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
存储器402可用于存储计算机程序和数据。存储器402存储的计算机程序中包含有可在处理器中执行的指令。计算机程序可以组成各种功能模块。处理器401通过调用存储在存储器402的计算机程序,从而执行各种功能应用以及数据处理。
在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:
当需要关闭进程时,确定所述电子设备中处于运行状态的进程;
获取每一处于所述运行状态的进程的历史启动次数;
将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;
获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;
关闭所述第一目标进程。
在一些实施例中,请参阅图5,图5为本申请实施例提供的电子设备的第二种结构示意图。电子设备400还包括:射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409。其中,处理器401分别与射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409电性连接。
射频电路403用于收发射频信号,以通过无线通信与网络设备或其他电子设备进行通信。
显示屏404可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图像、文本、图标、视频和其任意组合来构成。
控制电路405与显示屏404电性连接,用于控制显示屏404显示信息。
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。其中,输入单元406可以包括指纹识别模组。
音频电路407可通过扬声器、传声器提供用户与电子设备之间的音频接口。其中,音频电路407包括麦克风。所述麦克风与所述处理器401电性连接。所述麦克风用于接收用户输入的语音信息。
传感器408用于采集外部环境信息。传感器408可以包括环境亮度传感器、加速度传感器、陀螺仪等传感器中的一种或多种。
电源409用于给电子设备400的各个部件供电。在一些实施例中,电源409可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
虽然图中未示出,电子设备400还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:
当需要关闭进程时,确定所述电子设备中处于运行状态的进程;
获取每一处于所述运行状态的进程的历史启动次数;
将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;
获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;
关闭所述第一目标进程。
在一些实施例中,处理器401还执行:将所述候选进程中级别最高的一个进程,作为第一目标进程。
在一些实施例中,处理器401还执行:从所述候选进程中确定出级别最高的第二目标进程;
当所述第二目标进程有一个时,将所述第二目标进程作为第一目标进程;
当所述第二目标进程有多个时,确定每一所述第二目标进程所占用的内存量,将占用的内存量最大的一个第二目标进程作为第一目标进程。
在一些实施例中,处理器401还执行:当检测到空闲内存空间小于预设内存阈值时,判定需要关闭进程;
所述关闭所述第一目标进程之后,处理器401还执行:
将所述第一目标进程从所述候选进程中删除,并检测空闲内存空间是否小于所述预设内存阈值;
若是,则基于删除操作后的候选进程,返回执行根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程。
在一些实施例中,处理器401还执行:当检测到空闲内存空间小于预设内存阈值时,判定需要关闭进程,并根据所述空闲内存空间和所述预设内存阈值确定目标内存量;
将所述候选进程按照级别由高至低的顺序构成进程链表;
按照所述级别由高至低的顺序,遍历所述进程链表,直至遍历到的一个或多个候选进程占用的内存量大于所述目标内存量;
将遍历到的所述一个或多个候选进程作为第一目标进程。
在一些实施例中,处理器401还执行:当检测到有进程启动时,获取当前的时间信息;根据启动的进程的名称以及所述时间信息,更新所述启动的进程对应的启动记录;获取每一处于所述运行状态的进程的启动记录,并根据对应的所述启动记录获取所述每一处于所述运行状态的进程的历史启动次数。
在一些实施例中,处理器401还执行:根据所述预设启动次数对历史启动次数大于所述预设启动次数的进程的历史启动次数进行修改,以使修改后的历史启动次数等于修改前的历史启动次数与所述预设启动次数的差值。
在一些实施例中,处理器401还执行:获取每一处于所述运行状态的进程在预设历史时间区间内的历史启动次数。
由上可知,本申请实施例提供了一种电子设备,所述电子设备当需要关闭进程时,确定所述电子设备中处于运行状态的进程;获取每一处于所述运行状态的进程的历史启动次数;将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;关闭所述第一目标进程。通过这种方式,在需要进行关闭进程时,综合处于运行状态的进程的级别以及其历史启动次数,选择级别高同时启动次数少的进程进行关闭,能够避免为了内存回收,而将一些需要频繁启动的进程关闭,进而避免了进程被关闭后又在短时间内被启动而导致的内存回收无效,以提高内存回收的有效性。
本申请实施例还提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,所述计算机执行上述任一实施例所述的进程管理方法。
需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可以存储于计算机可读存储介质中,所述存储介质可以包括但不限于:只读存储器(ROM,Read OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
此外,本申请中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
以上对本申请实施例所提供的进程管理方法、装置、存储介质及电子设备进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (11)

1.一种进程管理方法,其特征在于,应用于电子设备,所述方法包括:
当需要关闭进程时,确定所述电子设备中处于运行状态的进程;
获取每一处于所述运行状态的进程的历史启动次数;
将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;
获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;
关闭所述第一目标进程。
2.如权利要求1所述的进程管理方法,其特征在于,所述根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程,包括:
将所述候选进程中级别最高的一个进程,作为第一目标进程。
3.如权利要求2所述的进程管理方法,其特征在于,所述将所述候选进程中级别最高的一个进程,作为第一目标进程,包括:
从所述候选进程中确定出级别最高的第二目标进程;
当所述第二目标进程有一个时,将所述第二目标进程作为第一目标进程;
当所述第二目标进程有多个时,确定每一所述第二目标进程所占用的内存量,将占用的内存量最大的一个第二目标进程作为第一目标进程。
4.如权利要求2所述的进程管理方法,其特征在于,所述确定所述电子设备中处于运行状态的进程之前,还包括:
当检测到空闲内存空间小于预设内存阈值时,判定需要关闭进程;
所述关闭所述第一目标进程之后,还包括:
将所述第一目标进程从所述候选进程中删除,并检测空闲内存空间是否小于所述预设内存阈值;
若是,则基于删除操作后的候选进程,返回执行根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程。
5.如权利要求1所述的进程管理方法,其特征在于,所述确定所述电子设备中处于运行状态的进程之前,还包括:
当检测到空闲内存空间小于预设内存阈值时,判定需要关闭进程,并根据所述空闲内存空间和所述预设内存阈值确定目标内存量;
所述根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程,包括:
将所述候选进程按照级别由高至低的顺序构成进程链表;
按照所述级别由高至低的顺序,遍历所述进程链表,直至遍历到的一个或多个候选进程占用的内存量大于所述目标内存量;
将遍历到的所述一个或多个候选进程作为第一目标进程。
6.如权利要求1所述的进程管理方法,其特征在于,所述方法还包括:
当检测到有进程启动时,获取当前的时间信息;
根据启动的进程的名称以及所述时间信息,更新所述启动的进程对应的启动记录;
所述获取每一处于所述运行状态的进程的历史启动次数,包括:
获取每一处于所述运行状态的进程的启动记录,并根据对应的所述启动记录获取所述每一处于所述运行状态的进程的历史启动次数。
7.如权利要求1至6任一项所述的进程管理方法,其特征在于,所述将所述历史启动次数大于预设启动次数的进程,作为候选进程之后,还包括:
根据所述预设启动次数对历史启动次数大于所述预设启动次数的进程的历史启动次数进行修改,以使修改后的历史启动次数等于修改前的历史启动次数与所述预设启动次数的差值。
8.如权利要求1至6任一项所述的进程管理方法,其特征在于,所述获取每一处于所述运行状态的进程的历史启动次数,包括:
获取每一处于所述运行状态的进程在预设历史时间区间内的历史启动次数。
9.一种进程管理装置,其特征在于,应用于电子设备,所述装置包括:
状态确定单元,用于当需要关闭进程时,确定所述电子设备中处于运行状态的进程;
次数统计单元,用于获取每一处于所述运行状态的进程的历史启动次数;
进程选择单元,用于将所述历史启动次数不大于预设启动次数且处于运行状态的进程,作为候选进程;
以及,获取所述候选进程中每一进程的级别,并根据进程的级别从所述候选进程中确定出满足预设条件的进程,作为第一目标进程;
进程管理单元,用于关闭所述第一目标进程。
10.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至8任一项所述的进程管理方法。
11.一种电子设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器通过调用所述计算机程序,用于执行如权利要求1至8任一项所述的进程管理方法。
CN202010197116.4A 2020-03-19 2020-03-19 进程管理方法、装置、存储介质及电子设备 Active CN111381953B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010197116.4A CN111381953B (zh) 2020-03-19 2020-03-19 进程管理方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010197116.4A CN111381953B (zh) 2020-03-19 2020-03-19 进程管理方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111381953A true CN111381953A (zh) 2020-07-07
CN111381953B CN111381953B (zh) 2024-01-16

Family

ID=71215417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010197116.4A Active CN111381953B (zh) 2020-03-19 2020-03-19 进程管理方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111381953B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116244067A (zh) * 2021-06-10 2023-06-09 荣耀终端有限公司 虚拟内存管理方法和电子设备
WO2024037428A1 (zh) * 2022-08-17 2024-02-22 中移(苏州)软件技术有限公司 一种进程处理方法和设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631661A (zh) * 2013-11-27 2014-03-12 青岛海信电器股份有限公司 一种内存管理方法和装置
US20150331612A1 (en) * 2013-02-01 2015-11-19 Huawei Device Co., Ltd. Memory Cleaning Method and Apparatus, and Terminal Device
CN105354093A (zh) * 2015-12-09 2016-02-24 广东欧珀移动通信有限公司 内存管理方法及移动终端
WO2017206867A1 (zh) * 2016-05-31 2017-12-07 广东欧珀移动通信有限公司 一种传感器的关闭方法、装置、存储介质及电子设备
CN107479951A (zh) * 2017-07-31 2017-12-15 广东欧珀移动通信有限公司 进程管控方法、装置、存储介质及电子设备
CN109688618A (zh) * 2018-11-27 2019-04-26 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150331612A1 (en) * 2013-02-01 2015-11-19 Huawei Device Co., Ltd. Memory Cleaning Method and Apparatus, and Terminal Device
CN103631661A (zh) * 2013-11-27 2014-03-12 青岛海信电器股份有限公司 一种内存管理方法和装置
CN105354093A (zh) * 2015-12-09 2016-02-24 广东欧珀移动通信有限公司 内存管理方法及移动终端
WO2017206867A1 (zh) * 2016-05-31 2017-12-07 广东欧珀移动通信有限公司 一种传感器的关闭方法、装置、存储介质及电子设备
CN107479951A (zh) * 2017-07-31 2017-12-15 广东欧珀移动通信有限公司 进程管控方法、装置、存储介质及电子设备
CN109688618A (zh) * 2018-11-27 2019-04-26 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116244067A (zh) * 2021-06-10 2023-06-09 荣耀终端有限公司 虚拟内存管理方法和电子设备
CN116244067B (zh) * 2021-06-10 2024-05-03 荣耀终端有限公司 虚拟内存管理方法和电子设备
WO2024037428A1 (zh) * 2022-08-17 2024-02-22 中移(苏州)软件技术有限公司 一种进程处理方法和设备

Also Published As

Publication number Publication date
CN111381953B (zh) 2024-01-16

Similar Documents

Publication Publication Date Title
CN110888746B (zh) 内存管理方法、装置、存储介质及电子设备
CN111158910B (zh) 内存管理方法、装置、存储介质及电子设备
CN111274039B (zh) 内存回收方法、装置、存储介质及电子设备
EP3502878B1 (en) Method for preloading application and terminal device
CN111078406B (zh) 内存管理方法、装置、存储介质及电子设备
CN107835311B (zh) 应用管理方法、装置、存储介质及电子设备
CN108614655B (zh) 分屏显示方法、装置、存储介质及电子设备
WO2022143446A1 (zh) 内存释放方法及相关设备
KR20130021625A (ko) 메모리 상태 변화에 따른 단말기 운용 방법 및 이를 지원하는 단말기
CN111381953B (zh) 进程管理方法、装置、存储介质及电子设备
WO2021077261A1 (zh) 应用程序管理方法及装置、电子设备以及存储介质
WO2019024641A1 (zh) 数据同步方法、装置、存储介质以及电子设备
CN111078410B (zh) 内存分配方法、装置、存储介质及电子设备
US20170285977A1 (en) Methods and apparatus to manage a process under a memory constraint
CN108984295A (zh) 内存回收方法、计算机装置及计算机可读存储介质
CN109271253A (zh) 一种资源调配方法、装置及系统
CN103501487A (zh) 分类器更新方法、装置、终端、服务器及系统
CN111008079B (zh) 进程管理方法、装置、存储介质及电子设备
CN111475299B (zh) 内存分配方法、装置、存储介质及电子设备
CN107450951B (zh) 应用程序处理方法、装置、存储介质和终端
CN111262737B (zh) 一种端口配置管理方法、装置、存储介质及终端
CN111831437A (zh) 设备管理方法、装置、存储介质及电子设备
CN108595072A (zh) 分屏显示方法、装置、存储介质及电子设备
CN111831413A (zh) 线程调度方法、装置、存储介质及电子设备
CN114968558A (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