CN108228340A - 终端控制方法及装置、终端设备及计算机可读存储介质 - Google Patents
终端控制方法及装置、终端设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108228340A CN108228340A CN201710667651.XA CN201710667651A CN108228340A CN 108228340 A CN108228340 A CN 108228340A CN 201710667651 A CN201710667651 A CN 201710667651A CN 108228340 A CN108228340 A CN 108228340A
- Authority
- CN
- China
- Prior art keywords
- physical page
- liveness
- value
- recyclable
- target
- 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
Links
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5022—Mechanisms to release resources
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)
Abstract
本发明提供一种终端设备控制方法及装置、终端设备及计算机可读存储介质,该方法包括获取正在运行的目标应用程序,判断目标应用程序是否为不可关闭但可回收内存的应用程序,如是,计算目标应用程序可回收内存量;其中,计算目标应用程序可回收内存量包括:获取目标应用程序正在运行的第一目标进程,并获取第一目标进程对应的可回收物理页,计算可回收物理页中的可回收活跃物理页占用的内存量。该装置用于实现上述的终端设备控制方法。本发明提供的终端设备具有处理器,处理器执行计算机程序时可以实现上述的终端设备控制方法。本发明的计算机可读存储介质上存储有用于实现上述方法计算机程序。本发明可以准确计算终端设备当前能够回收的内存量。
Description
技术领域
本发明涉及电子设备的控制领域,具体地,是在一种在终端设备上实现可回收内存计算的方法以及实现这种方法的装置,还涉及一种实现上述方法的终端设备以及计算机可读存储介质。
背景技术
智能手机、平板电脑等终端设备成为人们日常生活中最经常使用的电子设备,人们喜欢在智能电子设备上安装各种应用程序,并且在终端设备上同时运行大量的应用程序。而终端设备的操作***中,为了加快对磁盘进行读写操作的速度,通常会将大量的数据缓存在内存中。进程在使用内存前,需要提出申请并开始占用内存,当使用完内存后再及时回收内存。由于用户在使用终端应用的过程中,经常会频繁更换应用,为了减少用户的等待时长,操作***通常会为转入后台的应用进程保留其占用的内存。但是,当后台应用过多,内存被大量占用而得不到回收时,会因为内存分配不足导致操作***运行出现异常。
为了避免因内存分配不足导致的***异常,操作***引入了对内存的回收机制。例如,当内存不足时,***会关闭一些后台进程来回收其占用的内存。并且,为了让用户清晰知晓关闭应用程序后能够回收的内存量,通常会计算关闭应用程序后能够回收的内存量,并且将计算的可回收的内存量显示在触摸屏上。由于操作***往往是通过关闭应用程序的方式进行内存回收的,因此所显示的可回收内存量仅仅是计算关闭应用程序后能够回收的内存量。
但是,当用户需要使用这些进程对应的应用时,这些进程需要完全的进行重新加载,耗时长,降低用户体验。因此,现有技术提出在不关闭进程的情况下进行内存回收的方法。近期最少使用链表LRU,将物理页按照近期的使用情况进行排列,当内存不足时,***会优先对其中的INACTIVE_ANON和INACTIVE_FILE这两个链表中的物理页进行回收。ANON代表匿名映射,没有后备存储器,FILE代表文件映射,INACTIVE代表处于非活动状态。当进程需要使用回收的物理页上的内容时,只要从磁盘中加载相应内容即可,减少耗时。但是,前台运行的应用进程或者后台运行的优先级高的应用进程,其占用的物理页也可能处于INACTIVE_ANON和INACTIVE_FILE这两个链表中,对这两个链表中的物理页进行回收可能会影响这两类应用的正常运行,降低用户体验。
为了保证前台应用进程和后台运行的优先级高的应用进程的正常运行,现有技术提出针对进程进行内存回收的方法,首先获取目标进程的物理页,之后查找未被目标进程使用的目标物理页并回收目标物理页。但是在现有的对进程进行内存回收的方法中,其回收的目标物理页仅仅针对未被目标进程使用的目标物理页,目标物理页主要是目标进程在INACTIVE_ANON和INACTIVE_FILE这两个链表中的物理页,也就是非活动状态的物理页,这种方法的内存回收效率很低。
由于目前不关闭应用程序进行内存回收的效率很低,因此在进行可回收内存量的计算时,往往并不计算这些不被关闭的应用程序所占用的内存量,导致用户往往不清楚终端设备最终能够回收的内存量。
发明内容
本发明的第一目的是提供一种可以计算终端设备能够回收的内存的终端设备控制方法。
本发明的第二目的是提供一种可以计算终端设备能够回收的内存的终端设备控制装置。
本发明的第三目的是提供一种能够实现上述终端设备控制方法的终端设备。
本发明的第四目的是提供一种被处理器读取并执行时能够实现上述终端设备控制方法的计算机可读存储介质。
为了实现上述的第一目的,本发明提供的终端设备控制方法包括获取正在运行的目标应用程序,判断目标应用程序是否为不可关闭但可回收内存的应用程序,如是,计算目标应用程序可回收内存量;其中,计算目标应用程序可回收内存量包括:获取目标应用程序正在运行的第一目标进程,并获取第一目标进程对应的可回收物理页,计算可回收物理页中的可回收活跃物理页占用的内存量。
由上述方案可见,在计算可回收内存量时,将不可以关闭但可以执行内存回收操作的应用程序的可回收活跃物理页所占用的内存计算后,即可以大致计算出目标应用程序可以回收的内存量,从而方便用户了解应用程序能够被回收的内存量。
一个优选的方案是,获取第一目标进程对应的可回收活跃物理页包括:读取第一目标进程的目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关;若目标物理页的活跃度的值高于回收标准,且活跃度的值高于回收标准的物理页处于活动状态,则降低目标物理页的活跃度,并再次读取目标物理页的活跃度的值;若目标物理页的活跃度的值不高于回收标准,则确定目标物理页为可回收活跃物理页。
由此可见,通过对活跃物理页的活跃度进行降低并且再次读取其活跃度的值,从而判断该物理页是否为可回收的活跃物理页,有效对活跃物理页进行回收。
进一步的方案是,获取目标进程对应的可回收物理页包括:获取目标进程的物理页,并识别物理页中的不可回收物理页,不可回收物理页包括共享文件页、锁定页、匿名页以及脏文件页,判断物理页是否属于不可回收物理页,如不属于不可回收物理页,则确定物理页为可回收物理页。
可见,将共享文件页、锁定页、匿名页以及脏文件页等不可以回收的物理页排除,可以更加精确的计算出可回收的内存量。
优选的,获取正在运行的目标应用程序后,还执行以下步骤:确定目标应用程序为可关闭的应用程序时,计算目标应用程序可回收内存量,包括:获取目标应用程序正在运行的第二目标进程,并计算第二目标进程所占用的内存量。
优选的,计算目标应用程序可回收内存量后,在终端设备的显示屏上显示所计算的目标应用程序可回收内存量。
进一步的方案是,对第一目标进程可通过预设内存回收操作执行内存回收,其中,预设内存回收操作包括对目标进程执行内存回收操作包括:获取目标进程对应的目标物理页;读取目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关;若目标物理页的活跃度的值高于回收标准,且活跃度的值高于回收标准的物理页处于活动状态,则降低目标物理页的活跃度;再次读取目标物理页的活跃度的值;若目标物理页的活跃度的值不高于回收标准,则回收目标物理页。
由上述方案可见,在获取目标进程对应的目标物理页之后,若目标物理页的活跃度的值高于回收标准,可以降低目标物理页的活跃度,并在目标物理页的活跃度不高于回收标准时,对目标物理页进行回收。这样,即使目标物理页为活动状态的物理页,本发明也有机会对目标物理页进行回收,相比于现有技术,本发明大大扩展了内存回收的对象,提高了内存回收效率。
进一步的,在降低目标物理页的活跃度之后,在读取目标物理页的活跃度的值之前,开启计时器;当计时器记录的时长达到预设时长时,触发读取目标物理页的活跃度的值的步骤。
进一步的,开启计时器之前,根据内存占用率设置预设时长,预设时长与内存占用率负相关;或者,根据目标进程的优先级设置预设时长,预设时长与目标进程的优先级正相关。
进一步的,活跃度的可选值至少包括第一值、第二值和第三值,第一值不高于回收标准,第二值低于第三值,且高于回收标准。
进一步的,降低目标物理页的活跃度包括:当目标物理页的活跃度为第三值时,将目标物理页的活跃度设置为第二值;当目标物理页的活跃度为第二值时,将目标物理页的活跃度设置为第一值。
进一步的,降低目标物理页的活跃度包括:当目标物理页为匿名页时,按照第一幅度降低目标物理页的活跃度;当目标物理页为文件页时,按照第二幅度降低目标物理页的活跃度;第一幅度低于第二幅度。
为实现上述的第二目的,本发明提供的终端设备控制装置包括第一获取模块,用于获取正在运行的应用程序;判断模块,用于判断目标应用程序是否为不可关闭但可回收内存的应用程序;第一计算模块,用于计算目标应用程序可回收内存量:获取目标应用程序正在运行的第一目标进程,并获取第一目标进程对应的可回收物理页,计算可回收物理页中的可回收活跃物理页占用的内存量。
进一步的,第一计算模块包括:读取模块,用于读取第一目标进程的目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关;可回收活跃物理页确定模块,在目标物理页的活跃度的值高于回收标准,且活跃度的值高于回收标准的物理页处于活动状态,则降低目标物理页的活跃度,并再次读取目标物理页的活跃度的值;若目标物理页的活跃度的值不高于回收标准时,则确定目标物理页为可回收活跃物理页。
进一步的,还包括第一设置模块,用于在计时模块开启计时器之前,根据内存占用率设置预设时长,预设时长与内存占用率负相关;或者,第二设置模块,用于在计时模块开启计时器之前,根据目标进程的优先级设置预设时长,预设时长与目标进程的优先级正相关。
进一步的,活跃度的可选值至少包括第一值、第二值和第三值,第一值不高于回收标准,第二值低于第三值,且高于回收标准。
进一步的,降低模块包括:设置单元,用于当目标物理页的活跃度为第三值时,将目标物理页的活跃度设置为第二值;当目标物理页的活跃度为第二值时,将目标物理页的活跃度设置为第一值。
进一步的,降低模块包括:降低单元,用于当目标物理页为匿名页时,按照第一幅度降低目标物理页的活跃度;当目标物理页为文件页时,按照第二幅度降低目标物理页的活跃度;第一幅度低于第二幅度。
为实现上述的第三目的,本发明提供的终端设备包括处理器,处理器用于执行存储器中存储的计算机程序时实现上述终端设备控制方法的各个步骤。
为实现上述的第四目的,本发明提供的计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述终端设备控制方法的各个步骤。
附图说明
图1是本发明终端设备控制方法实施例的流程图。
图2是本发明终端设备控制方法实施例中确定可回收活跃物理页的流程图。
图3是本发明终端设备控制方法实施例中计算可关闭应用程序的可回收内存量的流程图。
图4是本发明终端设备控制方法实施例中的不可关闭但可回收的应用程序的第一目标进程内存回收的第一种方式的流程图。
图5是本发明终端设备控制方法实施例中的不可关闭但可回收的应用程序的第一目标进程内存回收的第二种方式的流程图。
图6是本发明终端设备控制方法实施例中的不可关闭但可回收的应用程序的第一目标进程内存回收的第三种方式的流程图。
图7是本发明终端设备控制方法实施例中的不可关闭但可回收的应用程序的第一目标进程内存回收的第四种方式的流程图。
图8是本发明终端设备控制装置实施例的结构框图。
图9是应用于本发明终端设备控制装置实施例的内存回收装置一种方式的结构框图。
图10是应用于本发明终端设备控制装置实施例的内存回收装置另一种方式的结构框图。
图11是本发明终端设备实施例的结构框图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本发明终端设备控制方法是应用在诸如智能手机或者平板电脑等终端设备上,用于实现应用程序,尤其是用户所选定的应用程序所占用的内存的回收。本发发明的内存回收装置运行在终端设备上,并且用于实现上述的终端设备控制方法。
由于用户在使用应用程序的过程中,经常会频繁更换所使用的应用程序,例如利用视频播放软件观看视频的过程中,可能需要频繁的将聊天应用切换到前台,为了减少用户的等待时长,操作***通常会为转入后台的应用进程保留其占用的内存。但是,当后台运行的应用程序过多,终端设备的内存被大量占用而得不到释放时,会因为内存分配不足导致操作***运行出现异常。
终端设备可以通过关闭应用程序来进行内存回收,也可以通过不关闭应用程序,而是对应用程序的进程进行内存回收的方式进行内存回收,因此,在计算终端设备可回收的内存时,首先需要识别应用程序是哪一种类型的应用程序,即判断应用程序是可关闭的还是不可关闭但能够执行内存回收的应用程序,并且对两种类型的应用程序分别采用不同的计算方法计算可回收的内存量。
参见图1,对可回收的内存量进行计算时,执行以下步骤:
步骤S101,获取正在运行的目标应用程序。
操作***通常记录当前正在运行的应用程序的信息,例如,在任务管理器内形成一个当前正在运行的应用程序的列表,该列表上记录每一个当前正在运行的应用程序的信息,包括应用程序的名称等。获取当前正在运行的应用程序的信息,可以通过读取任务管理器的信息等方式获取当前正在运行的应用程序的信息。
步骤S102,判断目标应用程序是否为不可关闭但可以回收内存的应用程序。
为了便于对不同类型的应用程序执行差异化的操作,需要对应用程序进行分类。例如,将不可以关闭且不可以执行内存回收操作的应用程序设定为第一类应用程序,将可关闭的应用程序设定为第二类应用程序,将不可关闭但可回收内存的应用程序设定为第三类应用程序。
具体的,第一类应用程序包括操作***运行必要应用程序以及预设不可执行内存回收的应用程序。例如,操作***运行时必须运行某一应用程序,则该应用程序被设定为第一类应用程序,该应用程序是不能够被关闭的,且执行内存回收操作时,也不允许对该应用程序执行内存回收的操作。或者,用户预先设置白名单,白名单中的应用程序为不可以被关闭且不可以执行内存回收的应用程序。如果判断某一应用程序是白名单中的应用程序,则将该应用程序设定为第一类应用程序。
第三类应用程序包括预设不可回收内存应用程序以及操作***后台正在响应的应用程序。例如,用户设置了不可以被关闭的应用程序的名单,如果某一应用程序是不可被关闭应用程序名单中的应用程序,则该应用程序是不可以被关闭的。但是对于不可以被关闭的应用程序,可以执行内存回收的操作。此外,如果用户设置了对某一应用程序的关闭锁定,也就是对应用程序“加锁”,则应用程序也被设定为第二类应用程序。
第三类应用程序还包括操作***后台正在响应的应用程序,例如,音乐播放应用程序正在后台运行,但由于终端设备始终在播放音乐,则该应用程序是后台正在响应的应用程序。如果在内存回收时,将该应用程序关闭,则将会导致音乐播放的即时终止,影响用户的体验,因此正在后台响应的应用程序也是不能被关闭,但能够执行内存回收操作。另外,诸如正在导航工作的地图应用程序、正在下载文件的浏览器,这些都是后台正在响应的应用程序,不能被关闭,但能够执行内存回收操作。
如果某一应用程序不是第一类应用程序,也不是第三类应用程序,即属于第二类应用程序,也就是在操作***执行回收内存时可以被关闭的应用程序。
步骤S103,获取目标应用程序正在运行的第一目标进程。
如步骤S102中,确定目标应用程序是不可关闭但可以回收内存的应用程序,则获取该目标应用程序正在运行的第一目标进程。例如,获取目标应用程序的进程列表,从进程列表中获取目标应用程序当前正在运行的所有进程,并且将目标应用程序的正在运行进程确定为第一目标进程。
步骤S104,获取第一目标进程的可回收物理页。
首先,获取第一目标进程对应的全部物理页,获取第一进程对应的全部物理页的方式可以根据进程识别号PID,找到进程的虚拟内存空间VMA,遍历VMA可以找到进程对应的物理页,还可以通过其他方式查找进程对应的物理页,此处不做具体限定。
获取第一目标进程全部物理页后,确定全部物理页中的哪些是可回收物理页。因此,在获取第一目标进程对应的物理页后,对所获取的物理页进行识别,判断哪些物理页是不可回收的物理页。具体的,不可回收页包括共享文件页、锁定页、匿名页以及脏文件页。共享文件页是多个进程共用的物理页,由于这些有物理页被其他进程使用,因此在回收内存时不对共享文件页进行回收。锁定页是被***锁定的物理页,对于匿名页以及有脏文件的物理页,也是不能被回收的物理页。由于共享文件页、锁定页、匿名页以及脏文件页都有相应的标记或者自身的特征,在遍历第一目标进程所有物理页时,可以根据该物理页的标记或者自身的特征识别出不可回收的物理页。
在确定第一目标进程中不可回收物理页后,即可以确定可回收物理页。如果一个物理页不是不可回收物理页,即确定该物理页是可回收的物理页。
步骤S105,计算第一目标进程的可回收活跃物理页占用内存量。
通常,可回收物理页包括可回收活跃物理页以及非活跃物理页,但由于非活跃物理页通常占比较少,因此,可以仅仅计算可回收物理页中可回收活跃物理页占用的内存量作为第一目标进程可回收的内存量。识别可回收活跃物理页与非活跃物理页的判断方法将在下文详细介绍。
确定可回收物理页中的可回收活跃物理页后,即可以计算出每一可回收活跃物理页占用内存量,将多个可回收活跃物理页占用内存量相加即可以获得第一目标进程可回收内存量。将目标应用程序的所有第一目标进程可回收内存量相加,即可以获得目标应用程序的可回收内存量。
参见图2,判断物理页是否为可回收活跃物理页或者非活跃物理页时,执行以下步骤:
步骤S201,获取第一目标进程对应的目标物理页。
获取第一进程对应的物理页的方式可以根据进程识别号PID,找到进程的虚拟内存空间VMA,遍历VMA可以找到进程对应的物理页,还可以通过其他方式查找进程对应的物理页,此处不做具体限定。
步骤S202,读取目标物理页的活跃度的值。
获取第一目标进程对应的目标物理页之后,可以读取目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关,也就是说,物理页的活动程度越高,则其活跃度的值越大。并且,物理页的活跃度的可选值应不少于两个。
需要说明的是,活跃度的值可以为数值,此时可以按照数值大小确定活跃度的值的大小,但是,活跃度的值不应仅限为数值,只要根据预设的比较标准能够判定不同值的高低即可。
步骤S203,若目标物理页的活跃度的值高于回收标准,则降低目标物理页的活跃度,活跃度的值高于回收标准的物理页处于活动状态。
读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,回收标准可以视为是活动状态的物理页的活跃度和非活动状态的物理页的活跃度之间边界值。如果目标物理页的活跃度的值低于回收标准,则可以确定目标物理页是非活跃物理页,非活跃物理页是可以直接被回收的物理页。如果目标物理页的活跃度的值高于回收标准的物理页处于活动状态,则可以降低目标物理页的活跃度。
步骤S204,再次读取目标物理页的活跃度的值。
在步骤S203之后,可以读取目标物理页的活跃度的值。若在步骤S204之前,在步骤S203中所读取的目标物理页被访问,则该目标物理页的活跃度的值会增加。如果在步骤S204之前,在步骤S203中所读取的目标物理页没有被访问,则目标物理页的活跃度的值将维持步骤S203操作后,即被降低活跃度之后的值。
步骤S205,若目标物理页的活跃度的值不高于回收标准,则确定目标物理页是可回收活跃物理页。
再次读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,若目标物理页的活跃度的值不高于回收标准,则确定目标物理页是可回收活跃物理页。若目标物理页的活跃度的值不高于回收标准时,表明目标物理页处于非活动状态,目标物理页可以被回收。
当然,在计算第一目标进程可回收的内存量时,也可以将非活跃物理所占用的内存量一并计算,即计算可回收活跃物理页与非活跃物理页所占用的内存量作为第一目标进程可回收的内存量。
下面,结合图3介绍计算第二类应用程序可回收内存量的流程。
步骤S301,确定目标应用程序是可关闭的应用程序。
通过对应用程序的识别可以确定目标应用程序是否为不可关闭的应用程序或者不可关闭但可以回收内存的应用程序,如果目标应用程序都不是上述两种类型的应用程序,则确定目标应用程序是可关闭的应用程序。
步骤S302,获取目标应用程序正在运行的第二目标进程。
获取目标应用程序的进程列表,从进程列表中获取该应用程序当前正在运行的所有进程,并且将目标应用程序的正在运行进程确定为第二目标进程,一种情况是,目标应用程序的正在运行的所有进程都是被确定的第二目标进程。
当然,如果存在多个应用程序共用一个或者多个进程的情况,需要判断共用的进程能否被执行内存回收的操作。例如,某一共用进程也是另一个应用程序所使用的进程,但另一个应用程序是第一类应用程序,则不能将该进程确定为第二目标进程。一个可选的方案是,仅仅将应用程序中非共享进程确定为第二目标进程。例如,通过操作***的ActivityManager可以获取应用程序所有的进程识别号PID,如果该应用程序所有的进程都不是共享进程,则所有的进程都是第二目标进程。
步骤S303,获取第二目标进程所占用的内存量。
通过操作***的Activity Manager的getProcessMemoryInfo可以获取每一个进程所占用的内存信息。由于步骤S302中获取了第二目标进程的进程识别号PID,因此,步骤S303中,可以根据第二目标进程的进程识别号PID获取每一个第二目标进程所占内存信息。
步骤S304,计算目标应用程序可回收内存量。
步骤S303计算出每一个第二目标进程占用的内存信息,因此,只需要将目标应用程序中多个第二目标进程所占用的内存信息相加即可以获取每一个目标应用程序能够回收的内存量。由于目标应用程序是可以被关闭的应用程序,因此目标应用程序的所有非共享进程都可以关闭,也就是所有的第二目标进程都可以被关闭,因此所有第二目标进程所占用的内存都是可以回收的内存。
最后,将每一个第二类应用程序可回收的内存量相加,即可以获得所有第二类应用程序能够回收的内存量的总和。计算第二类应用程序可回收的内存量总和后,并且完成第三类应用程序可回收的内存量总和计算后,将第二类应用程序可回收的内存量总和以及第三类应用程序可回收的内存量总和相加,即可以获得终端设备可以回收的内存量总和。
通常,终端设备的物理内存通常被划分成若干份,每一份被记录为一个物理页。一个应用进程通常占用多个物理页,操作***回收应用进程占用的内存,实际上是对应用进程占用的多个物理页进行回收。关于内存回收,操作***需要在保证应用的数据不丢失的前提下做回收动作。页面回收的方式一般有页回写、页交换和页丢弃三种方式。
对第三类应用程序进行内存回收时,是针对第三类应用程序的第一目标进程进行的内存回收,虽然使用页面回收方式可以将应用程序所占用的内存释放,从而可以避免内存分配不足的情况。但是这会增加***磁盘读写的次数,并且,重新加载会增加用户的等待时长,降低用户体验。因此,操作***通常会优先对价值较低的物理页存储数据进行回收,释放相应的内存,以保证内存供应的情况下,尽量减少***磁盘读写的次数以及用户的等待时长。
判断物理页存储数据的价值高低可以有很多角度,现有技术通常以物理页的活跃程度(或称活跃度)高低来评价物理页存储数据的价值高低,物理页的活跃度越高,***通常认为该物理页存储数据的价值越高。为了比较物理页的活跃度,现有技术引入近期最少使用链表LRU,是按照近期的使用情况排列的,最少使用的存在链表末尾。INACTIVE_ANON、ACTIVE_ANON、INACTIVE_FILE和ACTIVE_FILE这 4个链表中的物理页是可以回收的,ANON代表匿名映射,FILE代表文件映射,INACTIVE代表处于非活动状态,ACTIVE代表处于活动状态,ACTIVE链表中的物理页的活跃度高于INACTIVE链表中的物理页,也就是说,处于活动状态的物理页,它的活跃度高于处于非活动状态的物理页。当内存不足时,***会优先对LRU中的INACTIVE_ANON和INACTIVE_FILE这两个链表中的物理页进行回收,当进程需要使用回收的物理页上的内容时,需要从磁盘中加载相应内容。
但是,前台运行的应用进程或者后台运行的优先级高的应用进程,其占用的物理页也可能处于INACTIVE_ANON和INACTIVE_FILE这两个链表中,对这两个链表中前台进程和后台优先级高的进程对应的物理页进行回收,会更大程度的增加***磁盘读写的次数,并且,增加用户的等待时长,降低用户体验。
可见,应用进程也应作为评价物理页价值高低的一个权重。为此,现有技术提出针对进程进行内存回收的方法,首先选定作为内存回收对象的目标进程,并获取目标进程的物理页,之后查找未被目标进程使用的目标物理页并回收目标物理页,未被目标进程使用的目标物理页主要指处于非活动状态的物理页。
在实际场景测试中,对于一个退到后台一分钟的进程,对其占用的所有物理页进行回收,其中,该进程在INACTIVE_ANON和INACTIVE_FILE链表中的物理页只占用到所有物理页比例的5%,而大部分物理页是该进程在ACTIVE_ANON和ACTIVE_FILE链表中的物理页。可见,现有的针对进程进行内存回收的方法回收效率很低。
为了提高回收效率,需要对ACTIVE_ANON和ACTIVE_FILE链表中的物理页进行选择性回收,优选的,便是回收其中价值较低的物理页,或者说,活跃度较低的物理页。因此,本实施例针对第三类应用程序进行内存回收时,采用如下的方法执行。参见图4,针对第三类应用程序内存回收的第一种方式包括以下步骤:
步骤S401,获取第一目标进程对应的目标物理页。
获取第一进程对应的物理页的方式可以根据进程识别号PID,找到进程的虚拟内存空间VMA,遍历VMA可以找到进程对应的物理页,还可以通过其他方式查找进程对应的物理页,此处不做具体限定。目标物理页可以为第一目标进程对应的全部物理页,也可以为第一目标进程对应的部分物理页。对第一目标进程的回收可以通过串行方式进行,也就是说每次回收只选择一个物理页作为目标物理页,执行本发明的回收流程,或者也可以通过并行方式进行,也就是说同时选择多个物理页作为目标物理页,对多个物理页同时执行本发明的回收流程。
步骤S402,读取目标物理页的活跃度的值。
获取第一目标进程对应的目标物理页之后,可以读取目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关,也就是说,物理页的活动程度越高,则其活跃度的值越大。并且,物理页的活跃度的可选值应不少于两个。
需要说明的是,活跃度的值可以为数值,此时可以按照数值大小确定活跃度的值的大小,但是,活跃度的值不应仅限为数值,只要根据预设的比较标准能够判定不同值的高低即可。
步骤S403,若目标物理页的活跃度的值高于回收标准,则降低目标物理页的活跃度,活跃度的值高于回收标准的物理页处于活动状态。
读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,活跃度的值高于回收标准的物理页处于活动状态,回收标准可以视为是活动状态的物理页的活跃度和非活动状态的物理页的活跃度之间边界值。若判定目标物理页的活跃度的值高于回收标准,则可以降低目标物理页的活跃度,若判定目标物理页的活跃度的值不高于回收标准,则可以执行其他操作,比如回收目标物理页。
步骤S404,再次读取目标物理页的活跃度的值。
在步骤S403之后,可以读取目标物理页的活跃度的值。若在步骤S404之前,在步骤S403中所读取的目标物理页被访问,则该目标物理页的活跃度的值会增加。如果在步骤S404之前,在步骤S403中所读取的目标物理页没有被访问,则目标物理页的活跃度的值将维持步骤S403操作后,即被降低活跃度之后的值。
步骤S405,若目标物理页的活跃度的值不高于回收标准,则回收目标物理页。
再次读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,若目标物理页的活跃度的值不高于回收标准,则回收目标物理页。若目标物理页的活跃度的值不高于回收标准时,表明目标物理页处于非活动状态,现有技术有很多对非活动状态的物理页进行回收的方法,因此本实施例不再赘述对非活动状态的物理页的回收方法。
第一种内存回收方式中,如果步骤S403和步骤S404之间的时间间隔极短,极限情况下,可以理解成步骤S403降低目标物理页的活跃度之后,直接执行步骤S404读取目标物理页的活跃度的值,若活跃度的可选值只有两个,这样,几乎所有第一目标进程对应的处于活动状态的物理页均被回收,相当于***自动关闭第一目标进程,增加用户等待时长。因此,需要在第一实施例中增加反悔机制,比如在步骤S403和步骤S404之间设定适当的时间间隔,作为反悔时长,在设定的时间间隔内若目标物理页被访问,则其活跃度的值升高,降低被回收的可能性,有利于防止活跃度较高的物理页被回收。基于这种思路,本发明对第三类应用程序内存回收方法第二种方式的流程图如图5所示。
步骤S501,获取第一目标进程对应的目标物理页。
步骤S502,根据第一目标进程的优先级设置预设时长,预设时长与第一目标进程的优先级正相关。
反悔时长也可以称作预设时长,可以是***默认的固定时长,优选的,在确定针对第一目标进程进行回收之后,可以读取第一目标进程优先级,并根据第一目标进程的优先级设置预设时长,以使得预设时长与第一目标进程的优先级正相关,也就是说,优先级越高的进程,为其设置的预设时长越长。
或者,也可以根据内存占用率设置预设时长,预设时长与内存占用率负相关,也就是说,内存占用率越高,则预设时长越短,回收效率越高,以尽快回收更多内存。
步骤S503,读取目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关。
步骤S504,判断目标物理页的活跃度的值是否高于回收标准,若是,则执行步骤S505,若否,则执行步骤S507。
在读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,活跃度的值高于回收标准的物理页处于活动状态,若是,则执行步骤S505,若否,则执行步骤S507。
步骤S505,降低目标物理页的活跃度。
若判定目标物理页的活跃度的值高于回收标准,则可以降低目标物理页的活跃度。
步骤S506,开启计时器。
降低目标物理页的活跃度之后,可以开启计时器,记录时长。当计时器记录的时长达到预设时长时,重复执行步骤S503至步骤S504可以只重复一次,也就是说,若第一次重复执行步骤S504时,仍然判定目标物理页的活跃度的值高于回收标准,则不再执行步骤S505,而是直接退出对目标物理页的回收流程,也就是说,对活动状态的物理页只进行一次回收尝试。为了提高回收效率,回收更多的内存,优选的,对活动状态的物理页进行两次或两次以上的回收尝试,也就是说,可以对步骤S503至步骤S504重复执行两次或两次以上。
重复次数可以预设为某个有限数值,实际场景测试结果表明,前三次回收尝试的回收效率更高,第四次及之后的回收尝试回收效率很低,因此重复次数可以设置为三次。另外,也可以根据内存占用率设置重复次数,内存占用率越高,回收次数越多。或者,在实际使用中,也可以根据其他考虑对重复次数进行设置,本实施例对此不做限定。
需要说明的是,步骤S502在本发明实施例中的执行顺序并不限于上述描述的顺序,由于预设时长用于步骤S506,因此,只要在步骤S506之前执行即可,具体时序不做限定。
步骤S507,回收目标物理页。
若步骤S508判定目标物理页的活跃度的值不高于回收标准,则回收目标物理页。
本发明所设置的反悔机制,除了如第二种实施方法中,通过设定适当的时间间隔,作为反悔时长,以尽量防止活跃度较高的物理页被回收,还可以对高于回收标准的活跃度设置两个或两个以上可选的值,这样,活跃度更高的物理页在回收尝试中更不容易被回收。因此,本发明对第三类应用程序进行内存回收方法第三种实施方式的流程如图6所示。
步骤S601,设置物理页活跃度的可选值,包括第一值、第二值、第三值和第四值。
设置物理页活跃度的可选值,比如可以包括第一值、第二值、第三值和第四值,其中,第一值不高于回收标准,第二值低于第三值,且高于回收标准,第三值低于第四值。或者可以说,各个可选值代表了物理页的活跃度的级数,值越高,活跃度的级数越高。
作为举例,可以通过设置标志位来评估物理页的活动程度,假设设置两个标志位,每个标志位的可选值为0和1,活跃度的值可以用(第一标志位数值,第二标志位数值)来代表,那么活跃度的可选值包括(0,0)、(0,1)、(1,0)和(1,1),并预设比较标准(0,0)低于(1,0)低于(0,1)低于(1,1),也就是说(0,0)、(1,0)、(0,1)、(1,1)逐级升高。
在实际使用中,也可以设置可选值的范围,而不具体设置各个值。
步骤S602,获取第一目标进程对应的目标物理页。
步骤S603,读取第一目标物理页的活跃度的值。
步骤S602至步骤S603分别与第一种实施方式中的步骤S401至步骤S402相同,此处不再赘述。
步骤S604,判断目标物理页的活跃度的值是否高于回收标准,若是,则执行步骤S605,若否,则执行步骤S607。
在读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,活跃度的值高于回收标准的物理页处于活动状态,若是,则执行步骤S605,若否,则执行步骤S607。
步骤S605,按照第一幅度降低目标物理页的活跃度。
若判定目标物理页的活跃度的值高于回收标准,则可以按照第一幅度降低目标物理页的活跃度,在本发明实施例中,第一幅度可以为每次降低一级。
步骤S606,开启计时器。
可以设置有预设时长,作为反悔时长,关于预设时长的设置,请参阅第二种实施方式,本实施例中不再赘述。
当计时器记录的时长达到预设时长时,重复执行步骤S603至步骤S604。可以只重复一次,也就是说,若第一次重复执行步骤S604时,仍然判定目标物理页的活跃度的值高于回收标准,则不再执行步骤S605,而是直接退出对目标物理页的回收流程,也就是说,对活动状态的物理页只进行一次回收尝试。为了提高回收效率,回收更多的内存,优选的,对活动状态的物理页进行两次或两次以上的回收尝试,也就是说,可以对步骤S603至步骤S604重复执行两次或两次以上。
重复次数可以预设,实际场景测试结果表明,前三次回收尝试的回收效率更高,第四次及之后的回收尝试回收效率很低,因此重复次数可以设置为三次。另外,也可以根据内存占用率设置重复次数,内存占用率越高,回收次数越多。或者,在实际使用中,也可以根据其他考虑对重复次数进行设置,此处不做限定。
步骤S607,回收目标物理页。
若目标物理页的活跃度的值不高于回收标准,则回收目标物理页。
下面按照第三实施例提供的方法,以首次读取的活跃度的值的不同情况的进行举例说明,假设步骤S603至步骤S604的最大重复执行次数设置为3次:
一、假设在回收尝试的过程中,目标物理页未被访问,其活跃度的值未增加,那么:
若首次读取目标物理页的活跃度的值为第四值,那么执行步骤S605后,目标物理页的活跃度的值被设置为第三值,之后第一次重复执行步骤S603至步骤S604,由于活跃度的值仍然高于回收标准,继续对活跃度的值降低一级,设置为第二值,之后第二次重复执行步骤S603至步骤S604,由于活跃度的值仍然高于回收标准,继续对活跃度的值降低一级,设置为第一值,之后第三次重复执行步骤S603至步骤S604,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第四值,那么该物理页至少需要三次重复执行步骤S603至步骤S604方能被回收。
若首次读取目标物理页的活跃度的值为第三值,那么执行步骤S605后,目标物理页的活跃度的值被设置为第二值,之后第一次重复执行步骤S603至步骤S604,由于活跃度的值仍然高于回收标准,继续对活跃度的值降低一级,设置为第一值,之后第二次重复执行步骤S603至步骤S604,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第三值,那么该物理页至少需要两次重复执行步骤S603至步骤S604方能被回收。
若首次读取目标物理页的活跃度的值为第二值,那么执行步骤S605后,目标物理页的活跃度的值被设置为第一值,之后第一次重复执行步骤S603至步骤S604,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第二值,那么该物理页至少需要一次重复执行步骤S603至步骤S604方能被回收。
若首次读取目标物理页的活跃度的值为第一值,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第一值,那么该物理页不需要重复执行步骤S603至步骤S604就能被回收。
可见,执行本发明的回收步骤之前,活跃度的值越高的物理页,其越不容易被回收,也就是说,本发明能够优先回收活跃度较低的物理页,实现对活动状态的物理页的精细化分类回收。
二、假设在回收尝试的过程中,目标物理页被访问,则其活跃度的值会增加,那么和第一种情况相比,***需要更多次的回收尝试才能对目标物理页进行回收。在实际应用中,***通常对物理页进行有限次数的回收尝试,若在有限次数的回收尝试后,目标物理页的活跃度的值仍然高于回收标准,则表明目标物理页的活跃度很高,对于目标进程来说是价值更高的物理页,***不会回收目标物理页,在进程运行效果与内存资源充足之间取得更加合理的平衡。
进一步的,目标进程需要进行回收尝试的活动物理页包括目标进程在ACTIVE_ANON链表中的物理页(即活动状态的匿名页)和ACTIVE_FILE链表中对应的物理页(即活动状态的文件页)。其中,匿名页的回收方式为页交换,回收耗时长,效率低;而文件页的回收方式为页丢弃或页回写,回收耗时短,效率高。可见,对活动状态的匿名页的回收代价更高,因此,和活动状态的匿名页相比,可以降低对活动状态的文件页的回收难度,提高文件页的回收几率,更多的对文件页进行回收,以提高对活动物理页的整体回收效率。
增加对活动状态的匿名页的回收难度,可以采用多种方法,比如,可以增加匿名页的反悔时长,比如可以减少活跃度的可选值,或者也可以增加对活跃度的降低幅度。这里,我们对第三种方式进行举例说明,若第三实施例用于匿名页的回收,那么请参见7,本发明对第三类应用程序进行内存回收第四实施方式包括以下步骤:
步骤S701,设置物理页活跃度的可选值,包括第一值、第二值、第三值和第四值。
设置物理页活跃度的可选值,比如可以包括第一值、第二值、第三值和第四值,其中,第一值不高于回收标准,第二值低于第三值,且高于回收标准,第三值低于第四值。或者可以说,各个可选值代表了物理页的活跃度的级数,值越高,活跃度的级数越高。
作为举例,可以通过设置标志位来评估物理页的活动程度,假设设置两个标志位,每个标志位的可选值为0和1,活跃度的值可以用(第一标志位数值,第二标志位数值)来代表,那么活跃度的可选值包括(0,0)、(0,1)、(1,0)和(1,1),并预设比较标准(0,0)低于(1,0)低于(0,1)低于(1,1),也就是说(0,0)、(1,0)、(0,1)、(1,1)逐级升高。
步骤S702,获取第一目标进程对应的目标物理页。
步骤S703,读取目标物理页的活跃度的值。
步骤S702至步骤S703分别与第一实施例中的步骤S401至步骤S402相同,此处不再赘述。
步骤S704,判断目标物理页的活跃度的值是否高于回收标准,若是,则执行步骤S705,若否,则执行步骤S707。
在读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,活跃度的值高于回收标准的物理页处于活动状态,若是,则执行步骤S705,若否,则执行步骤S707。
步骤S705,若目标物理页的类型为文件页,则按照第二幅度降低目标物理页的活跃度。
在获取目标进程对应的目标物理页之后,在降低目标物理页的活跃度之前,可以根据目标物理页的类型来设置其活跃度的降低幅度。当目标物理页为匿名页时,则按照第一幅度降低目标物理页的活跃度;当目标物理页为文件页时,则按照第二幅度降低目标物理页的活跃度,并且第一幅度低于第二幅度。在第三实施例中,第一幅度为降低一级,可以作为当目标物理页为匿名页时的回收流程,此处不再赘述。本实施例中主要用于举例说明当目标物理页的类型为文件页时,对目标物理页的回收流程。由于第一幅度低于第二幅度,那么本实施例中第二幅度可以为每次降低两级。
步骤S706,开启计时器。
可以设置有预设时长,作为反悔时长,关于预设时长的设置,请参见第二实施例,本发明实施例中不再赘述。
当计时器记录的时长达到预设时长时,重复执行步骤S703至步骤S704。可以只重复一次,也就是说,若第一次重复执行步骤S703至步骤S704时,仍然判定目标物理页的活跃度的值高于回收标准,则不再执行步骤S705,而是直接退出对目标物理页的回收流程,也就是说,对活动状态的物理页只进行一次回收尝试。为了提高回收效率,回收更多的内存,优选的,对活动状态的物理页进行两次或两次以上的回收尝试,也就是说,可以对步骤S703至步骤S704重复执行两次或两次以上。
重复次数可以预设,实际场景测试结果表明,前三次回收尝试的回收效率更高,第四次及之后的回收尝试回收效率很低,因此重复次数可以设置为三次。另外,也可以根据内存占用率设置重复次数,内存占用率越高,回收次数越多。或者,在实际使用中,也可以根据其他考虑对重复次数进行设置,此处不做限定。
步骤S707,回收目标物理页。
若目标物理页的活跃度的值不高于回收标准,则回收目标物理页。
下面按照第四实施例提供的方法,以首次读取的活跃度的值的不同情况的进行举例说明,假设步骤S703至步骤S704的最大重复执行次数设置为3次:
一、假设在回收尝试的过程中,目标物理页未被访问,其活跃度的值未增加,那么:
若首次读取目标物理页的活跃度的值为第四值,那么执行步骤S705后,目标物理页的活跃度的值被设置为第二值,之后第一次重复执行步骤S703至步骤S704,由于活跃度的值仍然高于回收标准,继续对活跃度的值降低两级,由于最低的级数为第一值,因此设置为第一值,之后第二次重复执行步骤S703至步骤S704,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第四值,那么该物理页至少需要两次重复执行步骤S703至步骤S704方能被回收。
若首次读取目标物理页的活跃度的值为第三值,那么执行步骤S705后,目标物理页的活跃度的值被设置为第一值,之后第一次重复执行步骤S703至步骤S704,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第三值,那么该物理页至少需要一次重复执行步骤S703至步骤S704方能被回收。
若首次读取目标物理页的活跃度的值为第二值,那么执行步骤S705后,目标物理页的活跃度的值被设置为第一值,之后第一次重复执行步骤S703至步骤S704,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第二值,那么该物理页至少需要一次重复执行步骤S703至步骤S704方能被回收。
若首次读取目标物理页的活跃度的值为第一值,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第一值,那么该物理页不需要重复执行步骤S703至步骤S704就能被回收。
可见,执行本发明的回收步骤之前,活跃度的值越高的物理页,其越不容易被回收,也就是说,本发明能够优先回收活跃度较低的物理页,实现对活动状态的物理页的精细化分类回收。
与第三实施方式相比,本实施方式通过增加活跃度的值的降低幅度,有利于减少步骤S703至步骤S704的重复执行次数,提高对活动状态的文件页的回收效率。
二、假设在回收尝试的过程中,目标物理页被访问,则其活跃度的值会增加,那么和第一种情况相比,***需要更多次的回收尝试才能对目标物理页进行回收。在实际应用中,***通常对物理页进行有限次数的回收尝试,若在有限次数的回收尝试后,目标物理页的活跃度的值仍然高于回收标准,则表明目标物理页的活跃度很高,对于目标进程来说是价值更高的物理页,***不会回收目标物理页,在进程运行效果与内存资源充足之间取得更加合理的平衡。
通过第三实施例的方法和第四实施例的方法可以分别实现对目标进程的处于活动状态的匿名页和文件页的回收,如下表1,为按照第三实施例的方法和第四实施例的方法进行页面回收的一次实际场景测试。可以理解的是,表1中的测试数据仅为一次测试的结果,再次测试时,由于使用的终端不同、对应用程序的使用情况不同等,均会导致测试数据的变化,因此,表1的数据仅用于定性说明本发明对各应用的回收效果,而不用于定量限定本发明对各应用的回收效率。
应用名称 | 第一次回收率 | 第二次回收率 | 第三次回收率 | 第四次回收率 | 第五次回收率 | 累计进行三次回收的回收率 | 累计进行五次回收的回收率 |
豆瓣 | 2.64% | 8.27% | 26.73% | 0.46% | 0.08% | 34.56% | 35.00% |
4.62% | 33.02% | 11.55% | 1.90% | -0.97% | 43.49% | 44.10% | |
微信 | 1.79% | 12.15% | 19.32% | -0.04% | 0.32% | 30.39% | 30.60% |
今日头条 | 5.84% | 16.98% | 17.35% | -0.33% | -0.85% | 35.39% | 34.70% |
QQ浏览器 | 11.72% | 17.80% | 6.53% | 1.54% | -1.94% | 32.17% | 32.00% |
手机管家 | 4.87% | 20.91% | 17.58% | -0.62% | 0.72% | 37.99% | 38.10% |
应用中心 | 24.46% | 18.66% | 11.40% | 0.23% | -2.54% | 45.56% | 44.40% |
新浪微博 | 8.69% | 25.51% | 32.80% | -0.52% | -3.39% | 54.29% | 53.50% |
表1
分别以豆瓣、QQ、微信、今日头条、QQ浏览器、手机管家、应用中心和新浪微博等应用作为目标应用,即测试对象,以目标应用中的进程作为目标进程,对目标进程进行页面回收,以实现对目标应用的内存回收。以豆瓣为例,在测试过程中,首先对豆瓣的目标进程的匿名页执行一次步骤S603至步骤S604或者对其文件页执行一次步骤S703至步骤S704,简称为对豆瓣进行第一次回收,根据回收测试前豆瓣占用的内存大小和第一次回收后豆瓣占用的内存大小,可以计算得到对豆瓣的第一次回收率,为2.64%;之后对豆瓣的目标进程的匿名页第二次执行步骤S603至步骤S604、或者对其文件页第二次执行步骤S703至步骤S704,简称为对豆瓣进行第二次回收,根据第一次回收后豆瓣占用的内存大小和第二次回收后豆瓣占用的内存大小,可以计算得到对豆瓣的第二次回收率,为8.27%;依此类推,可以得到对豆瓣的第三次回收率为26.73%、对豆瓣的第四次回收率为0.46%、对豆瓣的第五次回收率为0.08%。
观察表1中同一应用不同次回收的回收率,可以看出,各应用在前三次的回收率均远远大于第四次和第五次的回收率,并且,累计进行三次回收的回收率(根据第三次回收后应用占用的内存大小和回收测试前应用占用的内存大小计算得到)和累计进行五次回收的回收率相差不大,说明回收次数过多,回收效率不高,且浪费资源,因此优选的是对应用进行有限次数的页面回收。
另外,现有的针对进程进行回收的方法,只对非活动状态的物理页进行回收,回收率对应于表1中的第一次回收率,通过比较表1中同一应用的第一次回收率和累计进行三次回收的回收率,可以发现,后者是前者的数倍,倍数在2倍至17倍之间,可见,和现有技术相比,本发明实现了更高的回收率,对于缓解***内存压力具有明显效果。
综上所述,本发明提供了一种针对进程进行内存回收的方法,并且能够对活动状态的物理页进行选择性回收,极大的提高了内存回收的效率。并且,本发明运行用户自行选择需要执行内存回收的应用程序,而不是由操作***自行选择哪些应用程序执行内存回收的操作。这样,用户可以根据使用的实际情况选择在后续一段时间内不需要频繁使用的应用程序执行内存回收操作,从而回收一部分应用程序所占用的内存资源。
由于本发明的第三类应用程序可以采用上述的内存回收方法进行回收,因此第三类应用程序所占用的内存可以充分的释放,也就是除了不可回收页以外的物理页都可以被回收,因此可以准确的计算出第三类应用程序可回收的内存量,让用户清晰了解终端设备可以回收的内存量。
由于现有的技术方案中,终端设备不针对应用程序的进程进行内存回收,因此不会计算第三类应用程序所占用的内存量,也就是不执行对不可关闭的应用程序内存回收操作,导致无法准确计算第三类应用程序可以回收的内存量。并且,由于现有技术并不是采用上述内存回收方法对第三类应用程序的内存进行回收,导致第三类应用程序的内存无法被充分回收,终端设备也不会精确计算第三类应用程序可回收的内存量,也就无法按照本发明的方法计算终端设备可回收的内存量。
本发明在计算终端设备可回收的内存量以后,可以显示在触摸屏上,让用户知晓终端设备可以回收的内存量。当然,可以在触摸屏上显示一个虚拟按键,如进行内存整理的虚拟按键,当接收到用户点击内存整理的虚拟按键后,终端设备执行内存整理的操作,例如将所有第二类应用程序关闭,并且采用上述的内存回收的方法对第三类应用程序执行内存回收操作,从而充分回收终端设备的内存。
上面对本发明实施例中的终端设备控制方法进行了描述,下面对本发明实施例中的终端设备控制装置进行描述。
参见图8,本发明的终端设备控制装置包括:
第一获取模块801,用于获取正在运行的目标应用程序。
判断模块802,用于判断目标应用程序是否属于不可以关闭但可以执行内存回收的应用程序。例如,应用程序包括第一类应用程序、第二类应用程序以及第三类应用程序,其中第一类应用程序是不可关闭且不可回收内存的应用程序,第二类应用程序是可关闭的应用程序,第三类应用程序是不可关闭但可回收内存的应用程序。通过对应用程序的类型进行识别,判断目标应用程序是否为不可以关闭但可以回收内存的应用程序。
第一计算模块803,用于在确定目标应用程序是不可以关闭但可以回收内存的应用程序后,计算目标应用程序可回收的内存量,具体的,计算目标应用程序第一目标进程可回收物理页占用的内存量。
优选的,第一计算模块803具体还包括:
读取模块804,用于读取第一目标进程的目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度。
可回收活跃物理页确定模块805,在目标物理页的活跃度的值高于回收标准,且活跃度的值高于回收标准的物理页处于活动状态时,降低目标物理页的活跃度,并再次读取目标物理页的活跃度的值;若目标物理页的活跃度的值不高于回收标准时,则确定目标物理页为可回收活跃物理页。
当然,可回收活跃物理页必须是可回收的物理页,确定目标物理页是可回收的物理页时,可以获取目标进程的物理页,并识别物理页中的不可回收物理页,不可回收物理页包括共享文件页、锁定页、匿名页以及脏文件页,判断物理页是否属于不可回收物理页,如不属于不可回收物理页,则确定物理页为可回收物理页。
第二计算模块806,用于计算第一目标进程的可回收活跃物理页占用的内存量。
非活跃物理页确定模块807,用于在读取模块804读取目标物理页活跃度的值以后,在目标物理页的活跃度低于回收标准时,确定目标物理页为非活跃物理页。
第三计算模块808,用于计算第一目标进程的非活跃物理页占用的内存量。
当然,如果目标应用程序是可关闭的应用程序,则计算目标应用程序可回收的内存量时,只需要计算目标应用程序所占用的内存量总和即可。并且,在计算第二类应用程序以及第三类应用程序的可回收内存量总和后,将第二类应用程序可回收的内存量与第三类应用程序可回收的内存量相加,即可以获得终设备一共能够回收的内存量。
本发明的第三类应用程序可以通过内存回收装置进行回收,参见图9,本发明实施例中内存回收装置的第一实施例包括:
第二获取模块901,用于获取第一目标进程对应的目标物理页。
第一读取模块902,用于读取目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关。
降低模块903,用于当目标物理页的活跃度的值高于回收标准时,降低目标物理页的活跃度,并且,活跃度的值高于回收标准的物理页处于活动状态。
第二读取模块904,用于在降低模块降低目标物理页的活跃度之后,再次读取目标物理页的活跃度的值。
回收模块905,用于当目标物理页的活跃度的值不高于回收标准时,回收目标物理页。
请参见图10,本发明实施例中内存回收装置第二实施例包括:
第三获取模块1001,用于获取第一目标进程对应的目标物理页。
第一读取模块1002,用于读取目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关。
降低模块1003,用于当目标物理页的活跃度的值高于回收标准时,降低目标物理页的活跃度,活跃度的值高于回收标准的物理页处于活动状态。
优选的,降低模块1003包括有设置单元1004以及降低单元1005,其中,设置单元1004用于当目标物理页的活跃度为第三值时,将目标物理页的活跃度设置为第二值;当目标物理页的活跃度为第二值时,将目标物理页的活跃度设置为第一值。降低单元1005用于当目标物理页为匿名页时,按照第一幅度降低目标物理页的活跃度;当目标物理页为文件页时,按照第二幅度降低目标物理页的活跃度;并且,第一幅度低于第二幅度。
第二设置模块1006,用于在计时模块1007开启计时器之前,根据目标进程的优先级设置预设时长,预设时长与目标进程的优先级正相关。
计时模块1007,用于在降低目标物理页的活跃度之后,在读取目标物理页的活跃度的值之前,开启计时器。
第二读取模块1008,用于在降低模块降低目标物理页的活跃度之后,读取目标物理页的活跃度的值。
回收模块1009,用于当目标物理页的活跃度的值不高于回收标准时,回收目标物理页。
在实际使用中,也可以不采用第二设置模块,而是采用第一设置模块,第一设置模块用于在计时模块开启计时器之前,根据内存占用率设置预设时长,预设时长与内存占用率负相关。
本发明实施例还提供了一种终端,如图11所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(英文全称:Personal Digital Assistant,英文缩写:PDA)等任意终端设备。
参考图11,终端设备包括:电源1103、存储器1102、处理器1101以及存储在存储器中并可在处理器上运行的计算机程序。其中,处理器1101执行计算机程序时实现上述各个信息处理方法实施例中的步骤,例如图1所示的步骤S101至S105等。或者,处理器执行计算机程序时实现上述各装置实施例中各模块或单元的功能。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器中,并由处理器执行,以完成本发明。上述的一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。
本领域技术人员可以理解,图11中示出的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,例如上述的终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
当然,上述的方案只是本发明优选的实施方案,实际应用是还可以有更多的变化,例如,待处理信息的设置方式改变、对待处理信息的不可见方式的改变,这样的改变并不影响本发明的实施,也应该包括在本发明的保护范围内。
Claims (10)
1.一种终端设备控制方法,其特征在于,包括:
获取正在运行的目标应用程序,判断所述目标应用程序是否为不可关闭但可回收内存的应用程序,如是,计算所述目标应用程序可回收内存量;
其中,计算所述目标应用程序可回收内存量包括:
获取所述目标应用程序正在运行的第一目标进程,并获取所述第一目标进程对应的可回收物理页,计算所述可回收物理页中的可回收活跃物理页占用的内存量。
2.根据权利要求1所述的终端设备控制方法,其特征在于,获取所述第一目标进程对应的可回收活跃物理页包括:
读取所述第一目标进程的目标物理页的活跃度的值,所述目标物理页的活跃度用于标记所述目标物理页的活动程度,所述目标物理页的活跃度的值与所述目标物理页的活动程度正相关;
若所述目标物理页的活跃度的值高于回收标准,且活跃度的值高于所述回收标准的物理页处于活动状态,则降低所述目标物理页的活跃度,并再次读取所述目标物理页的活跃度的值;若所述目标物理页的活跃度的值不高于所述回收标准,则确定所述目标物理页为可回收活跃物理页。
3.根据权利要求1或2所述的终端设备控制方法,其特征在于,获取所述目标进程对应的可回收物理页包括:
获取所述目标进程的物理页,并识别所述物理页中的不可回收物理页,所述不可回收物理页包括共享文件页、锁定页、匿名页以及脏文件页,判断所述物理页是否属于所述不可回收物理页,如不属于所述不可回收物理页,则确定所述物理页为可回收物理页。
4.根据权利要求1或2所述的终端设备控制方法,其特征在于,获取正在运行的目标应用程序后,还执行以下步骤:
确定所述目标应用程序为可关闭的应用程序时,计算所述目标应用程序可回收内存量,包括:获取所述目标应用程序正在运行的第二目标进程,并计算所述第二目标进程所占用的内存量。
5.根据权利要求1或2所述的终端设备控制方法,其特征在于,计算所述目标应用程序可回收内存量后,在终端设备的显示屏上显示所计算的所述目标应用程序可回收内存量。
6.根据权利要求2所述的终端设备控制方法,其特征在于,确定所述目标应用程序为不可关闭但可回收内存的应用程序后,获取执行内存回收操作的指令,并执行内存回收操作:
其中,执行所述内存回收操作包括:
获取所述第一目标进程对应的目标物理页;
读取所述目标物理页的活跃度的值,若所述目标物理页的活跃度的值高于回收标准,且活跃度的值高于所述回收标准的物理页处于活动状态,则降低所述目标物理页的活跃度;
再次读取所述目标物理页的活跃度的值;
若所述目标物理页的活跃度的值不高于所述回收标准,则回收所述目标物理页。
7.一种终端设备控制装置,其特征在于,包括:
第一获取模块,用于获取正在运行的应用程序;
判断模块,用于判断所述目标应用程序是否为不可关闭但可回收内存的应用程序;
第一计算模块,用于计算所述目标应用程序可回收内存量:获取所述目标应用程序正在运行的第一目标进程,并获取所述第一目标进程对应的可回收物理页,计算所述可回收物理页中的可回收活跃物理页占用的内存量。
8.根据权利要求7所述的终端设备控制装置,其特征在于,所述第一计算模块包括:
读取模块,用于读取所述第一目标进程的目标物理页的活跃度的值,所述目标物理页的活跃度用于标记所述目标物理页的活动程度,所述目标物理页的活跃度的值与所述目标物理页的活动程度正相关;
可回收活跃物理页确定模块,在所述目标物理页的活跃度的值高于回收标准,且活跃度的值高于所述回收标准的物理页处于活动状态,则降低所述目标物理页的活跃度,并再次读取所述目标物理页的活跃度的值;若所述目标物理页的活跃度的值不高于所述回收标准时,则确定所述目标物理页为可回收活跃物理页。
9.一种终端设备,其特征在于,所述终端设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至6中任意一项所述终端设备控制方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至6中任意一项所述终端设备控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710667651.XA CN108228340B (zh) | 2017-08-07 | 2017-08-07 | 终端控制方法及装置、终端设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710667651.XA CN108228340B (zh) | 2017-08-07 | 2017-08-07 | 终端控制方法及装置、终端设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228340A true CN108228340A (zh) | 2018-06-29 |
CN108228340B CN108228340B (zh) | 2021-02-19 |
Family
ID=62655081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710667651.XA Active CN108228340B (zh) | 2017-08-07 | 2017-08-07 | 终端控制方法及装置、终端设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228340B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625351A (zh) * | 2020-05-12 | 2020-09-04 | Oppo(重庆)智能科技有限公司 | 文件页的回收方法和装置、终端和可读存储介质 |
CN111984413A (zh) * | 2020-08-20 | 2020-11-24 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置、电子设备及存储介质 |
CN113392037A (zh) * | 2020-03-12 | 2021-09-14 | 深圳市万普拉斯科技有限公司 | 内存回收方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544063A (zh) * | 2013-09-30 | 2014-01-29 | 三星电子(中国)研发中心 | 应用于安卓平台的进程清除方法和装置 |
CN105159777A (zh) * | 2015-08-03 | 2015-12-16 | 中科创达软件股份有限公司 | 进程的内存回收方法及装置 |
CN105320567A (zh) * | 2014-03-12 | 2016-02-10 | 奥普塔姆软件股份有限公司 | 用于有效资源回收的延迟损毁 |
JP2016045682A (ja) * | 2014-08-22 | 2016-04-04 | 日本電信電話株式会社 | サーバ |
CN106354562A (zh) * | 2016-08-25 | 2017-01-25 | 上海传英信息技术有限公司 | 内存清理***和内存清理方法 |
-
2017
- 2017-08-07 CN CN201710667651.XA patent/CN108228340B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544063A (zh) * | 2013-09-30 | 2014-01-29 | 三星电子(中国)研发中心 | 应用于安卓平台的进程清除方法和装置 |
CN105320567A (zh) * | 2014-03-12 | 2016-02-10 | 奥普塔姆软件股份有限公司 | 用于有效资源回收的延迟损毁 |
JP2016045682A (ja) * | 2014-08-22 | 2016-04-04 | 日本電信電話株式会社 | サーバ |
CN105159777A (zh) * | 2015-08-03 | 2015-12-16 | 中科创达软件股份有限公司 | 进程的内存回收方法及装置 |
CN106354562A (zh) * | 2016-08-25 | 2017-01-25 | 上海传英信息技术有限公司 | 内存清理***和内存清理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392037A (zh) * | 2020-03-12 | 2021-09-14 | 深圳市万普拉斯科技有限公司 | 内存回收方法、装置、计算机设备和存储介质 |
CN111625351A (zh) * | 2020-05-12 | 2020-09-04 | Oppo(重庆)智能科技有限公司 | 文件页的回收方法和装置、终端和可读存储介质 |
CN111984413A (zh) * | 2020-08-20 | 2020-11-24 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108228340B (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228341A (zh) | 内存回收方法及装置、终端设备及计算机可读存储介质 | |
CN104808951B (zh) | 进行存储控制的方法和设备 | |
CN108228449A (zh) | 终端设备控制方法及装置、终端设备及计算机可读存储介质 | |
CN102023843B (zh) | 函数的调用方法、装置及智能卡 | |
CN108205498A (zh) | 内存回收方法及装置、计算机装置及计算机可读存储介质 | |
CN108228340A (zh) | 终端控制方法及装置、终端设备及计算机可读存储介质 | |
CN108228339A (zh) | 一种内存回收方法及装置、终端设备及计算机可读存储介质 | |
CN108287760A (zh) | 终端设备控制方法及装置、终端设备及计算机可读存储介质 | |
CN104933051B (zh) | 文件存储空间回收方法和装置 | |
CN108205473A (zh) | 内存处理方法及装置、计算机装置及计算机可读存储介质 | |
CN108205471A (zh) | 内存回收方法及装置、计算机装置及计算机可读存储介质 | |
CN108205501A (zh) | 内存回收方法及装置、计算机装置及计算机可读存储介质 | |
CN104951370B (zh) | 一种内存管理方法及装置 | |
CN113672375B (zh) | 资源分配预测方法、装置、设备及存储介质 | |
CN105389266B (zh) | 一种数据管理方法及装置 | |
CN105893471A (zh) | 一种数据处理方法及电子设备 | |
CN108228342A (zh) | 终端设备控制方法及装置、终端设备及计算机可读存储介质 | |
CN103543901A (zh) | 生成菜单的方法和装置 | |
CN103905310B (zh) | 报文处理的方法及转发设备 | |
CN110389712A (zh) | 数据写入方法及其装置、固态硬盘和计算机可读存储介质 | |
CN108287761A (zh) | 内存回收方法及装置、终端设备及计算机可读存储介质 | |
CN106161389A (zh) | 一种作弊识别方法、装置及终端 | |
CN108228472A (zh) | 终端设备控制方法及装置、终端设备及计算机可读存储介质 | |
CN108763517A (zh) | 一种删除元数据的方法以及相关设备 | |
CN103514098B (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 |