CN108228339A - 一种内存回收方法及装置、终端设备及计算机可读存储介质 - Google Patents

一种内存回收方法及装置、终端设备及计算机可读存储介质 Download PDF

Info

Publication number
CN108228339A
CN108228339A CN201710628788.4A CN201710628788A CN108228339A CN 108228339 A CN108228339 A CN 108228339A CN 201710628788 A CN201710628788 A CN 201710628788A CN 108228339 A CN108228339 A CN 108228339A
Authority
CN
China
Prior art keywords
physical page
liveness
value
target physical
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
Application number
CN201710628788.4A
Other languages
English (en)
Other versions
CN108228339B (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.)
Meizu Technology Co Ltd
Original Assignee
Meizu 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 Meizu Technology Co Ltd filed Critical Meizu Technology Co Ltd
Priority to CN201710628788.4A priority Critical patent/CN108228339B/zh
Publication of CN108228339A publication Critical patent/CN108228339A/zh
Application granted granted Critical
Publication of CN108228339B publication Critical patent/CN108228339B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electrically Operated Instructional Devices (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是本发明终端设备实施例的结构框图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本发明内存回收方法是应用在诸如智能手机或者平板电脑等终端设备上,用于实现应用程序,尤其是用户所选定的应用程序所占用的内存的回收。本发发明的内存回收装置运行在终端设备上,并且用于实现上述的内存回收方法。
由于用户在使用应用程序的过程中,经常会频繁更换所使用的应用程序,例如利用视频播放软件观看视频的过程中,可能需要频繁的将聊天应用切换到前台,为了减少用户的等待时长,操作系统通常会为转入后台的应用进程保留其占用的内存。但是,当后台运行的应用程序过多,终端设备的内存被大量占用而得不到释放时,会因为内存分配不足导致操作系统运行出现异常。
通常,物理内存通常被划分成若干份,每一份被记录为一个物理页。一个应用进程通常占用多个物理页,操作系统回收应用进程占用的内存,实际上是对应用进程占用的多个物理页进行回收。关于内存回收,操作系统需要在保证应用的数据不丢失的前提下做回收动作。页面回收的方式一般有页回写、页交换和页丢弃三种方式。虽然使用页面回收方式可以将应用程序所占用的内存释放,从而可以避免内存分配不足的情况。但是这会增加系统磁盘读写的次数,并且,重新加载会增加用户的等待时长,降低用户体验。因此,操作系统通常会优先对价值较低的物理页存储数据进行回收,释放相应的内存,以保证内存供应的情况下,尽量减少系统磁盘读写的次数以及用户的等待时长。
判断物理页存储数据的价值高低可以有很多角度,现有技术通常以物理页的活跃程度(或称活跃度)高低来评价物理页存储数据的价值高低,物理页的活跃度越高,系统通常认为该物理页存储数据的价值越高。为了比较物理页的活跃度,现有技术引入近期最少使用链表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链表中的物理页进行选择性回收,优选的,便是回收其中价值较低的物理页,或者说,活跃度较低的物理页。参见图1,本发明内存回收方法第一实施例包括以下步骤:
步骤S101,获取回收目标应用程序内存的指令。
本发明可以允许用户主动的发出回收内存的指令,尤其是让用户自主选择需要回收内存的应用程序。因此,首先需要用户选定需要进行内存回收的应用程序,一个具体的方式是从任务管理器中选择需要回收内存的应用程序,具体的流程可参见图3所示的流程图,该流程将在后面详细介绍该流程。
步骤S102,确定目标应用程序正在运行的目标进程。
在用户选定需要进行内存回收的目标应用程序后,获取目标应用程序的进程列表,从进程列表中获取目标应用程序当前正在运行的所有进程,并且将目标应用程序的所有进程确定为目标进程,一种情况是,目标应用程序的正在运行的所有进程都是被确定的目标进程。
当然,如果存在多个应用程序共用一个或者多个进程的情况,需要判断共用的进程能否被执行内存回收的操作。例如,某一共用进程也是另一个应用程序所使用的进程,但另一个应用程序是一个被频繁使用的应用程序,或者该应用程序是被用户标记不能执行内存回收的应用程序,则不能将该进程确定为目标进程。一个可选的方案是,仅仅将目标应用程序中非共享进程确定为目标进程。
完成步骤S101以及步骤S102后,即确定目标进程后,可以执行针对目标进程的内存回收操作,具体的,执行以下步骤:
步骤S103,获取目标进程对应的目标物理页。
获取进程对应的物理页的方式可以根据进程识别号pid,找到进程的虚拟内存空间VMA,遍历VMA可以找到进程对应的物理页,还可以通过其他方式查找进程对应的物理页,此处不做具体限定。目标物理页可以为目标进程对应的全部物理页,也可以为目标进程对应的部分物理页。对目标进程的回收可以通过串行方式进行,也就是说每次回收只选择一个物理页作为目标物理页,执行本发明的回收流程,或者也可以通过并行方式进行,也就是说同时选择多个物理页作为目标物理页,对多个物理页同时执行本发明的回收流程。
步骤S104,读取目标物理页的活跃度的值。
获取目标进程对应的目标物理页之后,可以读取目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关,也就是说,物理页的活动程度越高,则其活跃度的值越大。并且,物理页的活跃度的可选值应不少于两个。
需要说明的是,活跃度的值可以为数值,此时可以按照数值大小确定活跃度的值的大小,但是,活跃度的值不应仅限为数值,只要根据预设的比较标准能够判定不同值的高低即可。
步骤S105,若目标物理页的活跃度的值高于回收标准,则降低目标物理页的活跃度,活跃度的值高于回收标准的物理页处于活动状态。
读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,活跃度的值高于回收标准的物理页处于活动状态,回收标准可以视为是活动状态的物理页的活跃度和非活动状态的物理页的活跃度之间边界值。若判定目标物理页的活跃度的值高于回收标准,则可以降低目标物理页的活跃度,若判定目标物理页的活跃度的值不高于回收标准,则可以执行其他操作,比如回收目标物理页。
步骤S106,再次读取目标物理页的活跃度的值。
在步骤S105之后,可以读取目标物理页的活跃度的值。若在步骤S106之前,在步骤S105中所读取的目标物理页被访问,则该目标物理页的活跃度的值会增加。如果在步骤S106之前,在步骤S105中所读取的目标物理页没有被访问,则目标物理页的活跃度的值将维持步骤S105操作后,即被降低活跃度之后的值。
步骤S107,若目标物理页的活跃度的值不高于回收标准,则回收目标物理页。
再次读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,若目标物理页的活跃度的值不高于回收标准,则回收目标物理页。若目标物理页的活跃度的值不高于回收标准时,表明目标物理页处于非活动状态,现有技术有很多对非活动状态的物理页进行回收的方法,因此本实施例不再赘述对非活动状态的物理页的回收方法。
下面结合图2与图3介绍本实施例的步骤S101中获取回收目标应用程序内存的指令的具体操作。本实施例获取回收目标应用程序内存的指令是通过在应用程序列表信息的显示页面下获取预设的操作指令实现的,因此,执行以下步骤:
步骤S301,获取显示应用程序列表信息的指令。
应用程序列表信息可以是在任务管理器或者应用程序管理应用的页面中显示,例如,双击HOME键、从HOME键处沿着触摸屏向上滑动等,这些操作指令是被视为发出运行任务管理器的指令。例如,从HOME键的右侧沿着触摸屏向上滑动,如图2所示的,则被认为发出显示应用程序列表信息的指令。
步骤S302,显示应用程序列表信息。
应用程序列表信息的显示方式多种多样,如图2所示的是一种常见的应用程序列表信息的显示方式,在触摸屏上以层叠卡片的方式显示多个应用程序的信息,每一张卡片显示一个应用程序的信息,如应用程序的名称、截图等。优选的,根据步骤S301中获取的显示应用程序列表信息的指令的不同方式,应用程序列表信息所显示的内容也可以相应调整。
例如,如果从HOME键左侧沿触摸屏从下往上滑动,则以多个应用程序最近被使用的顺序排列,即最近被使用的应用程序显示在层叠卡片的最上方,而长时间没有使用的应用程序显示在层叠卡片的下方,如此类推。这种情况下,所显示的应用程序有可能已经是被杀掉的应用程序,也就是显示在应用程序列表信息中的应用程序有可能已经不在后台运行。
如果从HOME键右侧沿触摸屏从下往上滑动,显示的应用程序列表中多个应用程序是当前正在运行的应用程序,也就是已经被杀掉的应用程序不会显示在应用程序列表中。此外,多个应用程序是按照多个应用程序估算的回收内存量的大小依次排序。例如,估算回收的内存量最大的应用程序显示在应用程序列表的最上方,估算回收的内存量较小的应用程序显示在应用程序列表的下方。因此,显示应用程序列表时需要估算每一个应用程序可能回收的内存量。
估算可能回收的内存的量的一种方法是遍历该应用程序可以执行内存回收的进程,并且遍历每一个可以执行内存回收的进程的所占用的物理页,这些物理页中可能包含有共享页面、Locked页面、匿名页面以及脏文件页面以及没有被使用的页面,也就是干净页面,除去共享文件页面、Locked页面、匿名页面以及脏文件页面后,剩下的文件页面都是可以回收的页面。估算可能回收的内存的量时,将共享文件页面、Locked页面、匿名页面以及脏文件页面所占用内存的数量相加,即可以估算出该进程能够回收的内存量。将应用程序中每一个正在运行的进程估算出来的可以回收的内存量相加,即可以估算出该应用程序能够回收的内存量。
估算每一应用程序能够回收的内存量之后,可以将估算的可以回收的内存量显示在每一个应用程序对应的卡片的页面上,以便于用户直观的了解每一个应用程序可能回收的内存量。
当然,如果在应用程序管理程序的显示页面显示应用程序列表,例如用户运行“手机管家”的应用程序,并且在该应用程序的显示页面上显示应用程序列表信息,优选的,“手机管家”应用程序所显示的应用程序列表信息中所有应用程序都是当前正在运行的应用程序。在“手机管家”的页面所显示应用程序列表信息可以用表格的形式将多个应用程序的信息显示在触摸屏上,如按照多个应用程序的名称排列,或者按照多个应用程序占用的内存量排序,或者按照多个应用程序最近被使用的时间排序,又或者按照估算的应用程序能够回收的内存量排序等。
步骤S303,获取针对选定应用程序的预设操作指令。
显示应用程序列表时,可以在每一个应用程序对应的位置显示一个虚拟按键,如图2所示的,在每一个应用程序对应的卡片上显示一个“内存回收”的虚拟按键203,但用户点击该虚拟按键203,表示用户需要对所选定的应用程序执行内存回收的操作,因此,本实施例中,针对选定应用程序的预设操作指令是用户点击“内存回收”的虚拟按键203操作指令。
为了便于用户对应用程序列表信息所显示的所有应用程序执行内存回收的操作,在触摸屏的最上端显示“全部内存回收”的虚拟按键202,当用户点击“全部内存回收”的虚拟按键202时,表示用户需要对应用程序列表所显示的所有应用程序执行内存回收操作。因此,不管用户点击“内存回收”的虚拟按键203或者点击“全部内存回收”的虚拟按键202,均视为发出了对应用程序执行内存回收操作的指令。
当然,发出内存回收操作的预设操作指令并不限于点击特定的虚拟按键,还可以是点击应用程序对应的卡片后在触摸屏上向左侧滑动或者向右侧滑动,又或者点击应用程序对应的卡片后在触摸屏向上滑动或者向下滑动等。一种可选的方式是,当用户点击某一应用程序对应的卡片后,向左滑动表示关闭该应用程序,向右滑动表示对该应用程序执行内存回收的操作。
如果以表格的方式显示应用程序列表,则可以在表格上每一应用程序对应的位置上显示一个表示内存回收的虚拟按键,当用户点击该虚拟按键时,表示用户发出了对该应用程序执行内存回收的指令。当然,用户也可以通过发出向左滑动或者向右滑动等操作来发出对所选择的应用程序执行内存回收的指令。此外,用户还可以通过发出语音指令的方式发出内存回收的指令,例如,在显示应用程序列表信息的页面上,用户发出“内存回收”或者“内存释放”等语音时,终端设备即获取执行对目标应用程序进行内存回收的预设操作指令。
步骤S304,确定选定的应用程序为目标应用程序。
在步骤S303中,用户针对一个或者多个应用程序发出预设操作指令,例如针对“微信”应用程序发出向右滑动的指令,则表示对“微信”这一应用程序执行内存回收的操作。当然,如果用户点击的虚拟按键是“全部内存回收”的虚拟按键202,则选定的应用程序是应用程序列表信息中所显示的所有应用程序,则步骤S304中,确定的目标应用程序就是应用程序列表中所显示的所有应用程序。
由于本实施例在获取目标进程对应的目标物理页之后,若目标物理页的活跃度的值高于回收标准,可以降低目标物理页的活跃度,并在目标物理页的活跃度不高于回收标准时,对目标物理页进行回收。这样,即使目标物理页为活动状态的物理页,本发明也有机会对目标物理页进行回收,和现有技术相比,扩展了内存回收的对象,提高了内存回收效率。
另外,在对活动状态的物理页进行回收尝试的过程中,降低活跃度的值后,下一次读取之前,未被访问的物理页,表明最近时间内不够活跃,其活跃度的值仍然较低;而在降低活跃度的值后,下一次读取之前,被访问的物理页,表明最近时间内该物理页更加活跃,其活跃度的值较高。和被访问的物理页相比,未被访问的物理页因其活跃度的值更有可能因不高于回收标准而更易被回收,从而实现了对处于活动状态的物理页中价值较低的或者说活跃度的值较低的物理页的回收。
此外,用户可以根据实际需要选定需要执行内存回收的应用程序,例如针对后续一段时间不再频繁使用的应用程序,可以执行内存回收操作。例如,用户使用地图应用程序导航,当到达目的地后,则可以暂时不再使用地图应用程序,但用户不希望关闭该应用程序,此时可以单独选择地图应用程序进行内存回收操作。如果用户发现终端设备运行缓慢甚至出现卡顿现象,则可以针对所有应用程序执行一次内存回收的操作。
第一实施例中,如果步骤S105和步骤S106之间的时间间隔极短,极限情况下,可以理解成步骤S105降低目标物理页的活跃度之后,直接执行步骤S106读取目标物理页的活跃度的值,若活跃度的可选值只有两个,这样,几乎所有目标进程对应的处于活动状态的物理页均被回收,相当于系统自动杀死目标进程,增加用户等待时长。因此,需要在第一实施例中增加反悔机制,比如在步骤S105和步骤S106之间设定适当的时间间隔,作为反悔时长,在设定的时间间隔内若目标物理页被访问,则其活跃度的值升高,降低被回收的可能性,有利于防止活跃度较高的物理页被回收。基于这种思路,本发明内存回收方法第二实施例流程图如图4所示。
步骤S401,获取回收目标应用程序内存的指令。
获取回收目标应用程序内存的指令可以与第一实施例的步骤S101的操作方式相同,也可以通过触摸屏上的压力传感器检测用户点击屏幕上应用程序的图标的压力来获取发出回收应用程序内存的指令。后面将详细介绍步骤S401中获取回收目标应用程序内存指令的具体步骤。
步骤S402,确定目标应用程序正在运行的目标进程。
步骤S403,获取目标进程对应的目标物理页。
步骤S404,根据目标进程的优先级设置预设时长,预设时长与目标进程的优先级正相关。
反悔时长也可以称作预设时长,可以是系统默认的固定时长,优选的,在确定针对目标进程进行回收之后,可以读取目标进程优先级,并根据目标进程的优先级设置预设时长,以使得预设时长与目标进程的优先级正相关,也就是说,优先级越高的进程,为其设置的预设时长越长。
或者,也可以根据内存占用率设置预设时长,预设时长与内存占用率负相关,也就是说,内存占用率越高,则预设时长越短,回收效率越高,以尽快回收更多内存。
步骤S405,读取目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关。
步骤S406,判断目标物理页的活跃度的值是否高于回收标准,若是,则执行步骤S407,若否,则执行步骤S409。
在读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,活跃度的值高于回收标准的物理页处于活动状态,若是,则执行步骤S407,若否,则执行步骤S409。
步骤S409,降低目标物理页的活跃度。
若判定目标物理页的活跃度的值高于回收标准,则可以降低目标物理页的活跃度。
步骤S408,开启计时器。
降低目标物理页的活跃度之后,可以开启计时器,记录时长。当计时器记录的时长达到预设时长时,重复执行步骤S405至步骤S406可以只重复一次,也就是说,若第一次重复执行步骤S406时,仍然判定目标物理页的活跃度的值高于回收标准,则不再执行步骤S407,而是直接退出对目标物理页的回收流程,也就是说,对活动状态的物理页只进行一次回收尝试。为了提高回收效率,回收更多的内存,优选的,对活动状态的物理页进行两次或两次以上的回收尝试,也就是说,可以对步骤S405至步骤S406重复执行两次或两次以上。
重复次数可以预设为某个有限数值,实际场景测试结果表明,前三次回收尝试的回收效率更高,第四次及之后的回收尝试回收效率很低,因此重复次数可以设置为三次。另外,也可以根据内存占用率设置重复次数,内存占用率越高,回收次数越多。或者,在实际使用中,也可以根据其他考虑对重复次数进行设置,本实施例对此不做限定。
需要说明的是,步骤S404在本发明实施例中的执行顺序并不限于上述描述的顺序,由于预设时长用于步骤S408,因此,只要在步骤S408之前执行即可,具体时序不做限定。
步骤S409,回收目标物理页。
若步骤S406判定目标物理页的活跃度的值不高于回收标准,则回收目标物理页。
下面结合图5与图6介绍步骤S401中获取回收目标应用程序内存的指令的具体流程。步骤S401并不是从应用程序列表信息的显示页面上获取回收目标应用程序内存的指令,而是可以直接在显示应用程序图标的页面上执行,例如在图5所示的终端设备桌面页面上获取回收应用程序内存的指令。
步骤S601,在当前运行的应用程序上显示正在运行的标记。
例如,在桌面页面上显示多个应用程序的图标,例如微信、高德地图等应用程序的图标,这些应用程序中有一部分是正在运行的应用程序,如正在后台运行的应用程序,而有一部分是没有运行的应用程序。由于内存回收只能针对正在运行的应用程序执行,为了方便用户知晓哪些应用程序正在运行,可以在当前正在运行的应用程序的图标上显示一个标记。如图5所示的,如果某一应用程序正在后台运行,则在该应用程序的图标501的右上角处显示一个小圆圈502作为正在运行的标记。
当然,还可以采用其他方式对当前正在运行的应用程序进行标记,例如在当前正在运行的应用程序的图标501下方显示特定颜色的底纹,或者在应用程序的图标501的下方增加显示一条直线,又或者更改应用程序的图标501原先显示的颜色或者图案等。
步骤S602,获取点击目标应用程序图标的指令。
在当前正在运行的应用程序的图标501上显示正在运行的标记502后,可以获取用户点击应用程序图标501的指令,当然,获取的点击应用程序图标的指令时,该应用程序应该是当前正在运行的应用程序,如果用户点击的图标不是当前正在运行的应用程序的图标,则表示用户希望运行该应用程序,则执行运行被点击的应用程序的操作。
如果用户点击的图标是当前正在运行的应用程序的图标,则将所点击的图标对应的应用程序作为选定应用程序,表示用户选择了该应用程序,可能后续需要对该应用程序执行内存回收的操作,也就是被选定的应用程序可能被确定为目标应用程序。
步骤S603,判断施加于触摸屏的压力值大于预设压力值时,显示内存回收提示窗口。
当用户点击应用程序的图标501时,判断用户点击应用程序的图标501的压力值是否大于预设的压力值。优选的,预设的压力值可以是操作系统预先设定的压力值,也可以是用户自行设定的压力值。可以理解,为了实现对用户施加的压力值进行检测,终端设备的触摸屏是具有压力值检测功能的触摸屏,也就是触摸屏上设置有压力检测传感器,用于检测用户按压触摸屏时所施加的压力值。
需要说明的是,判断施加于触摸屏的压力值是否大于预设压力值时,应该是判断用户点击应用程序图标501时所施加在触摸屏上的压力值,而不是其他时刻或者用户点击触摸屏其他位置时所施加在触摸屏上的压力值。
当确认用户点击应用程序的图标501的压力值小于预设的压力值时,则运行应用程序或者打开应用程序的主页面。当确认用户点击应用程序的图标501的压力值大于预设的压力值时,则在该应用程序图标501的近旁显示内存回收的提示窗口503,在提示窗口503上显示有“内存回收”的选项。
当然,提示窗口503除了显示“内存回收”的选项,还可以显示诸如“卸载”或者“关闭”等选项,另外,还可以根据应用程序所实现的功能的不同,在提示窗口503上显示其他的选项。
步骤S604,获取响应于内存回收提示窗口的预设操作指令。
在触摸屏上显示提示窗口503后,用户可以点击提示窗口503上的“内存回收”的选项,表示用户需要对该应用程序执行内存回收的操作。因此,本实施例中,获取响应于内存回收提示窗口的预设操作指令就是获取用户点击提示窗口503上的“内存回收”的选项的操作指令。
当然,预设操作指令还可以是点击提示窗口503上的“内存回收”的选项后向左滑动或者向右滑动的操作指令,又或者在显示提示窗口503后,用户发出语音指令,如发出“内存回收”的语音信息,终端设备也视为用户发出了对该应用程序执行内存回收的操作指令。
在获取用户发出的点击“内存回收”的选项的指令后,终端设备即确定用户需要对所选定的应用程序执行内存回收的操作,此时,确定被选定的应用程序作为目标应用程序,即执行步骤S402,确定目标应用程序正在运行的目标进程。
可见,步骤S401是通过用户点击触摸屏的压力值来确定用户发出回收应用程序内存的指令,实际操作时,还可以在确定用户点击应用程序的图标501时,施加在触摸屏上的压力值大于预设压力值时,即确定用户发出了对该应用程序执行内存回收的操作指令,也就是不在触摸屏上显示提示窗口。
此外,步骤S601并不是必须执行的步骤,例如,用户知晓当前后台正在运行有哪些应用程序,当需要对某一个当前正在运行的应用程序执行内存回收时,只需要点击该应用程序的图标,并且施加较大的压力并点击“内存回收”的选项即可。或者,用户不清楚哪些应用程序是当前运行的应用程序,可以通过任务管理器查看当前正在运行的应用程序列表信息,从而获知当前正在运行的应用程序的信息。
本发明所设置的反悔机制,除了如第二实施例中,通过设定适当的时间间隔,作为反悔时长,以尽量防止活跃度较高的物理页被回收,还可以对高于回收标准的活跃度设置两个或两个以上可选的值,这样,活跃度更高的物理页在回收尝试中更不容易被回收。因此,本发明内存回收方法第三实施例的流程如图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,获取回收目标应用程序内存的指令。
获取回收目标应用程序内存的指令可以采用诸如图3所示的流程或者诸如图6所示的流程实现,即可以采用在任务管理器的显示页面下显示待选的应用程序,由用户从中选择一个或者多个应用程序作为目标应用程序,或者用户在桌面页面上点击需要执行内存回收的应用程序的图标,并且施加较大的压力。
步骤S703,确定目标应用程序正在运行的目标进程。
步骤S704,获取目标进程对应的目标物理页。
步骤S705,读取目标物理页的活跃度的值。
步骤S703至步骤S705分别与第一实施例中的步骤S102至步骤S104相同,此处不再赘述。
步骤S706,判断目标物理页的活跃度的值是否高于回收标准,若是,则执行步骤S707,若否,则执行步骤S709。
在读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,活跃度的值高于回收标准的物理页处于活动状态,若是,则执行步骤S707,若否,则执行步骤S709。
步骤S707,按照第一幅度降低目标物理页的活跃度。
若判定目标物理页的活跃度的值高于回收标准,则可以按照第一幅度降低目标物理页的活跃度,在本发明实施例中,第一幅度可以为每次降低一级。
步骤S708,开启计时器。
可以设置有预设时长,作为反悔时长,关于预设时长的设置,请参阅图4对应的实施例,本实施例中不再赘述。
当计时器记录的时长达到预设时长时,重复执行步骤S705至步骤S706。可以只重复一次,也就是说,若第一次重复执行步骤S706时,仍然判定目标物理页的活跃度的值高于回收标准,则不再执行步骤S707,而是直接退出对目标物理页的回收流程,也就是说,对活动状态的物理页只进行一次回收尝试。为了提高回收效率,回收更多的内存,优选的,对活动状态的物理页进行两次或两次以上的回收尝试,也就是说,可以对步骤S705至步骤S706重复执行两次或两次以上。
重复次数可以预设,实际场景测试结果表明,前三次回收尝试的回收效率更高,第四次及之后的回收尝试回收效率很低,因此重复次数可以设置为三次。另外,也可以根据内存占用率设置重复次数,内存占用率越高,回收次数越多。或者,在实际使用中,也可以根据其他考虑对重复次数进行设置,此处不做限定。
步骤S709,回收目标物理页。
若目标物理页的活跃度的值不高于回收标准,则回收目标物理页。
下面按照第三实施例提供的方法,以首次读取的活跃度的值的不同情况的进行举例说明,假设步骤S705至步骤S706的最大重复执行次数设置为3次:
一、假设在回收尝试的过程中,目标物理页未被访问,其活跃度的值未增加,那么:
若首次读取目标物理页的活跃度的值为第四值,那么执行步骤S707后,目标物理页的活跃度的值被设置为第三值,之后第一次重复执行步骤S705至步骤S706,由于活跃度的值仍然高于回收标准,继续对活跃度的值降低一级,设置为第二值,之后第二次重复执行步骤S705至步骤S706,由于活跃度的值仍然高于回收标准,继续对活跃度的值降低一级,设置为第一值,之后第三次重复执行步骤S705至步骤S706,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第四值,那么该物理页至少需要三次重复执行步骤S705至步骤S706方能被回收。
若首次读取目标物理页的活跃度的值为第三值,那么执行步骤S707后,目标物理页的活跃度的值被设置为第二值,之后第一次重复执行步骤S705至步骤S706,由于活跃度的值仍然高于回收标准,继续对活跃度的值降低一级,设置为第一值,之后第二次重复执行步骤S705至步骤S706,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第三值,那么该物理页至少需要两次重复执行步骤S705至步骤S706方能被回收。
若首次读取目标物理页的活跃度的值为第二值,那么执行步骤S707后,目标物理页的活跃度的值被设置为第一值,之后第一次重复执行步骤S705至步骤S706,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第二值,那么该物理页至少需要一次重复执行步骤S705至步骤S706方能被回收。
若首次读取目标物理页的活跃度的值为第一值,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第一值,那么该物理页不需要重复执行步骤S705至步骤S706就能被回收。
可见,执行本发明的回收步骤之前,活跃度的值越高的物理页,其越不容易被回收,也就是说,本发明能够优先回收活跃度较低的物理页,实现对活动状态的物理页的精细化分类回收。
二、假设在回收尝试的过程中,目标物理页被访问,则其活跃度的值会增加,那么和第一种情况相比,系统需要更多次的回收尝试才能对目标物理页进行回收。在实际应用中,系统通常对物理页进行有限次数的回收尝试,若在有限次数的回收尝试后,目标物理页的活跃度的值仍然高于回收标准,则表明目标物理页的活跃度很高,对于目标进程来说是价值更高的物理页,系统不会回收目标物理页,在进程运行效果与内存资源充足之间取得更加合理的平衡。
进一步的,目标进程需要进行回收尝试的活动物理页包括目标进程在ACTIVE_ANON链表中的物理页(即活动状态的匿名页)和ACTIVE_FILE链表中对应的物理页(即活动状态的文件页)。其中,匿名页的回收方式为页交换,回收耗时长,效率低;而文件页的回收方式为页丢弃或页回写,回收耗时短,效率高。可见,对活动状态的匿名页的回收代价更高,因此,和活动状态的匿名页相比,可以降低对活动状态的文件页的回收难度,提高文件页的回收几率,更多的对文件页进行回收,以提高对活动物理页的整体回收效率。
增加对活动状态的匿名页的回收难度,可以采用多种方法,比如,可以增加匿名页的反悔时长,比如可以减少活跃度的可选值,或者也可以增加对活跃度的降低幅度。这里,我们对第三种方式进行举例说明,若第三实施例用于匿名页的回收,那么请参见8,本发明内存回收第四实施例包括以下步骤:
步骤S801,设置物理页活跃度的可选值,包括第一值、第二值、第三值和第四值。
设置物理页活跃度的可选值,比如可以包括第一值、第二值、第三值和第四值,其中,第一值不高于回收标准,第二值低于第三值,且高于回收标准,第三值低于第四值。或者可以说,各个可选值代表了物理页的活跃度的级数,值越高,活跃度的级数越高。
作为举例,可以通过设置标志位来评估物理页的活动程度,假设设置两个标志位,每个标志位的可选值为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)逐级升高。
步骤S802,获取回收目标应用程序内存的指令。
获取回收目标应用程序内存的指令可以采用诸如图3所示的流程或者诸如图6所示的流程实现,在此不再赘述。
步骤S803,确定目标应用程序正在运行的目标进程。
步骤S804,获取目标进程对应的目标物理页。
步骤S805,读取目标物理页的活跃度的值。
步骤S803至步骤S805分别与第一实施例中的步骤S102至步骤S104相同,此处不再赘述。
步骤S806,判断目标物理页的活跃度的值是否高于回收标准,若是,则执行步骤S807,若否,则执行步骤S809。
在读取目标物理页的活跃度的值之后,可以判断目标物理页的活跃度的值是否高于回收标准,活跃度的值高于回收标准的物理页处于活动状态,若是,则执行步骤S807,若否,则执行步骤S809。
步骤S807,若目标物理页的类型为文件页,则按照第二幅度降低目标物理页的活跃度。
在获取目标进程对应的目标物理页之后,在降低目标物理页的活跃度之前,可以根据目标物理页的类型来设置其活跃度的降低幅度。当目标物理页为匿名页时,则按照第一幅度降低目标物理页的活跃度;当目标物理页为文件页时,则按照第二幅度降低目标物理页的活跃度,并且第一幅度低于第二幅度。在第三实施例中,第一幅度为降低一级,可以作为当目标物理页为匿名页时的回收流程,此处不再赘述。本实施例中主要用于举例说明当目标物理页的类型为文件页时,对目标物理页的回收流程。由于第一幅度低于第二幅度,那么本实施例中第二幅度可以为每次降低两级。
步骤S808,开启计时器。
可以设置有预设时长,作为反悔时长,关于预设时长的设置,请参见第二实施例,本发明实施例中不再赘述。
当计时器记录的时长达到预设时长时,重复执行步骤S805至步骤S806。可以只重复一次,也就是说,若第一次重复执行步骤S805至步骤S806时,仍然判定目标物理页的活跃度的值高于回收标准,则不再执行步骤S807,而是直接退出对目标物理页的回收流程,也就是说,对活动状态的物理页只进行一次回收尝试。为了提高回收效率,回收更多的内存,优选的,对活动状态的物理页进行两次或两次以上的回收尝试,也就是说,可以对步骤S805至步骤S806重复执行两次或两次以上。
重复次数可以预设,实际场景测试结果表明,前三次回收尝试的回收效率更高,第四次及之后的回收尝试回收效率很低,因此重复次数可以设置为三次。另外,也可以根据内存占用率设置重复次数,内存占用率越高,回收次数越多。或者,在实际使用中,也可以根据其他考虑对重复次数进行设置,此处不做限定。
步骤S809,回收目标物理页。
若目标物理页的活跃度的值不高于回收标准,则回收目标物理页。
下面按照第四实施例提供的方法,以首次读取的活跃度的值的不同情况的进行举例说明,假设步骤S805至步骤S806的最大重复执行次数设置为3次:
一、假设在回收尝试的过程中,目标物理页未被访问,其活跃度的值未增加,那么:
若首次读取目标物理页的活跃度的值为第四值,那么执行步骤S807后,目标物理页的活跃度的值被设置为第二值,之后第一次重复执行步骤S805至步骤S806,由于活跃度的值仍然高于回收标准,继续对活跃度的值降低两级,由于最低的级数为第一值,因此设置为第一值,之后第二次重复执行步骤S805至步骤S806,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第四值,那么该物理页至少需要两次重复执行步骤S805至步骤S806方能被回收。
若首次读取目标物理页的活跃度的值为第三值,那么执行步骤S807后,目标物理页的活跃度的值被设置为第一值,之后第一次重复执行步骤S805至步骤S806,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第三值,那么该物理页至少需要一次重复执行步骤S805至步骤S806方能被回收。
若首次读取目标物理页的活跃度的值为第二值,那么执行步骤S807后,目标物理页的活跃度的值被设置为第一值,之后第一次重复执行步骤S805至步骤S806,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第二值,那么该物理页至少需要一次重复执行步骤S805至步骤S806方能被回收。
若首次读取目标物理页的活跃度的值为第一值,由于活跃度的值不高于回收标准,对目标物理页进行回收。若首次读取目标物理页的活跃度的值为第一值,那么该物理页不需要重复执行步骤S805至步骤S806就能被回收。
可见,执行本发明的回收步骤之前,活跃度的值越高的物理页,其越不容易被回收,也就是说,本发明能够优先回收活跃度较低的物理页,实现对活动状态的物理页的精细化分类回收。
与第三实施例相比,本实施例通过增加活跃度的值的降低幅度,有利于减少步骤S805至步骤S806的重复执行次数,提高对活动状态的文件页的回收效率。
二、假设在回收尝试的过程中,目标物理页被访问,则其活跃度的值会增加,那么和第一种情况相比,系统需要更多次的回收尝试才能对目标物理页进行回收。在实际应用中,系统通常对物理页进行有限次数的回收尝试,若在有限次数的回收尝试后,目标物理页的活跃度的值仍然高于回收标准,则表明目标物理页的活跃度很高,对于目标进程来说是价值更高的物理页,系统不会回收目标物理页,在进程运行效果与内存资源充足之间取得更加合理的平衡。
通过第三实施例的方法和第四实施例的方法可以分别实现对目标进程的处于活动状态的匿名页和文件页的回收,如下表1,为按照第三实施例的方法和第四实施例的方法进行页面回收的一次实际场景测试。可以理解的是,表1中的测试数据仅为一次测试的结果,再次测试时,由于使用的终端不同、对应用程序的使用情况不同等,均会导致测试数据的变化,因此,表1的数据仅用于定性说明本发明对各应用的回收效果,而不用于定量限定本发明对各应用的回收效率。
应用名称 第一次回收率 第二次回收率 第三次回收率 第四次回收率 第五次回收率 累计进行三次回收的回收率 累计进行五次回收的回收率
豆瓣 2.64% 8.27% 26.73% 0.46% 0.08% 34.56% 35.00%
QQ 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浏览器、手机管家、应用中心和新浪微博等应用作为目标应用,即测试对象,以目标应用中的进程作为目标进程,对目标进程进行页面回收,以实现对目标应用的内存回收。以豆瓣为例,在测试过程中,首先对豆瓣的目标进程的匿名页执行一次步骤S705至步骤S706或者对其文件页执行一次步骤S805至步骤S806,简称为对豆瓣进行第一次回收,根据回收测试前豆瓣占用的内存大小和第一次回收后豆瓣占用的内存大小,可以计算得到对豆瓣的第一次回收率,为2.64%;之后对豆瓣的目标进程的匿名页第二次执行步骤S705至步骤S706、或者对其文件页第二次执行步骤S805至步骤S806,简称为对豆瓣进行第二次回收,根据第一次回收后豆瓣占用的内存大小和第二次回收后豆瓣占用的内存大小,可以计算得到对豆瓣的第二次回收率,为8.27%;依此类推,可以得到对豆瓣的第三次回收率为26.73%、对豆瓣的第四次回收率为0.46%、对豆瓣的第五次回收率为0.08%。
观察表1中同一应用不同次回收的回收率,可以看出,各应用在前三次的回收率均远远大于第四次和第五次的回收率,并且,累计进行三次回收的回收率(根据第三次回收后应用占用的内存大小和回收测试前应用占用的内存大小计算得到)和累计进行五次回收的回收率相差不大,说明回收次数过多,回收效率不高,且浪费资源,因此优选的是对应用进行有限次数的页面回收。
另外,现有的针对进程进行回收的方法,只对非活动状态的物理页进行回收,回收率对应于表1中的第一次回收率,通过比较表1中同一应用的第一次回收率和累计进行三次回收的回收率,可以发现,后者是前者的数倍,倍数在2倍至17倍之间,可见,和现有技术相比,本发明实现了更高的回收率,对于缓解系统内存压力具有明显效果。
综上所述,本发明提供了一种针对进程进行内存回收的方法,并且能够对活动状态的物理页进行选择性回收,极大的提高了内存回收的效率。并且,本发明运行用户自行选择需要执行内存回收的应用程序,而不是由操作系统自行选择哪些应用程序执行内存回收的操作。这样,用户可以根据使用的实际情况选择在后续一段时间内不需要频繁使用的应用程序执行内存回收操作,从而回收一部分应用程序所占用的内存资源。
上面对本发明实施例中的内存回收方法进行了描述,下面对本发明实施例中的内存回收装置进行描述。
请参见图9,本发明实施例中内存回收装置的第一实施例包括:
第一获取模块901,用于获取回收目标应用程序的内存的指令,例如,获取显示应用程序列表信息的指令,并且在显示应用程序列表后获取针对选定的应用程序的预设操作,如点击选定的应用程序向左或者向右滑动的操作,根据接收到的指令确定目标应用程序。或者,获取应用程序的图标被点击的指令,并且在应用程序的图标被点击时触摸屏被施加的压力值大于预设压力值时,显示内存回收提示窗口,此时,获取内存回收提示窗口上的“内存回收”选项被点击的操作。
目标进程确定模块902,用于确定目标应用程序正在运行的目标进程。
第二获取模块903,用于获取目标进程对应的目标物理页。
第一读取模块904,用于读取目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关。
降低模块905,用于当目标物理页的活跃度的值高于回收标准时,降低目标物理页的活跃度,并且,活跃度的值高于回收标准的物理页处于活动状态。
第二读取模块906,用于在降低模块降低目标物理页的活跃度之后,再次读取目标物理页的活跃度的值。
回收模块907,用于当目标物理页的活跃度的值不高于回收标准时,回收目标物理页。
请参见图10,本发明实施例中内存回收装置第二实施例包括:
第一获取模块1001,用于获取回收目标应用程序的内存的指令。
目标进程确定模块1002,根据获取到的回收目标应用程序内存的指令,确定目标应用程序正在运行的目标进程。
第二获取模块1003,用于获取目标进程对应的目标物理页。
第一读取模块1004,用于读取目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关。
降低模块1005,用于当目标物理页的活跃度的值高于回收标准时,降低目标物理页的活跃度,活跃度的值高于回收标准的物理页处于活动状态。
优选的,降低模块1005包括有设置单元1006以及降低单元1007,其中,设置单元1006用于当目标物理页的活跃度为第三值时,将目标物理页的活跃度设置为第二值;当目标物理页的活跃度为第二值时,将目标物理页的活跃度设置为第一值。降低单元1007,用于当目标物理页为匿名页时,按照第一幅度降低目标物理页的活跃度;当目标物理页为文件页时,按照第二幅度降低目标物理页的活跃度;并且,第一幅度低于第二幅度。
第二设置模块1008,用于在计时模块1009开启计时器之前,根据目标进程的优先级设置预设时长,预设时长与目标进程的优先级正相关。
计时模块1009,用于在降低目标物理页的活跃度之后,在读取目标物理页的活跃度的值之前,开启计时器。
第二读取模块1010,用于在降低模块降低目标物理页的活跃度之后,读取目标物理页的活跃度的值。
回收模块1011,用于当目标物理页的活跃度的值不高于回收标准时,回收目标物理页。
在实际使用中,也可以不采用第二设置模块,而是采用第一设置模块,第一设置模块用于在计时模块开启计时器之前,根据内存占用率设置预设时长,预设时长与内存占用率负相关。
本发明实施例还提供了一种终端,如图11所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(英文全称:Personal Digital Assistant,英文缩写:PDA)等任意终端设备。
参考图11,终端设备包括:电源1103、存储器1102、处理器1101以及存储在存储器中并可在处理器上运行的计算机程序。其中,处理器1101执行计算机程序时实现上述各个信息处理方法实施例中的步骤,例如图1所示的步骤S101至S107等。或者,处理器执行计算机程序时实现上述各装置实施例中各模块或单元的功能。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器中,并由处理器执行,以完成本发明。上述的一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。
本领域技术人员可以理解,图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.一种内存回收方法,应用于终端设备,其特征在于,所述内存回收方法包括:
获取点击目标应用程序图标的指令,并判断获取到点击指令时,施加于所述终端设备的触摸屏的压力值是否大于预设压力值,如是,则显示内存回收提示窗口,并获取响应于所述内存回收提示窗口的预设操作指令;
确定所述目标应用程序正在运行的目标进程,对所述目标进程执行内存回收操作。
6.根据权利要求5所述的内存回收方法,其特征在于,对所述目标进程执行内存回收操作包括:
获取所述目标进程对应的目标物理页;
读取所述目标物理页的活跃度的值,所述目标物理页的活跃度用于标记所述目标物理页的活动程度,所述目标物理页的活跃度的值与所述目标物理页的活动程度正相关;
若所述目标物理页的活跃度的值高于回收标准,且活跃度的值高于所述回收标准的物理页处于活动状态,则降低所述目标物理页的活跃度;
再次读取所述目标物理页的活跃度的值;
若所述目标物理页的活跃度的值不高于所述回收标准,则回收所述目标物理页。
7.一种内存回收装置,应用于终端设备,其特征在于,所述内存回收装置包括:
第一获取模块,用于获取显示应用程序列表信息的指令,显示应用程序列表信息,并获取针对选定应用程序的预设操作指令,确定所述选定应用程序为所述目标应用程序;
目标进程确定模块,用于根据所述回收目标应用程序的内存的指令,确定所述目标应用程序正在运行的目标进程;
内存回收模块,用于对所述目标进程执行内存回收操作。
8.根据权利要求7所述的内存回收装置,其特征在于,所述内存回收模块包括:
第二获取模块,用于获取所述目标进程对应的目标物理页;
第一读取模块,用于读取所述目标物理页的活跃度的值,所述目标物理页的活跃度用于标记所述目标物理页的活动程度,所述目标物理页的活跃度的值与所述目标物理页的活动程度正相关;
降低模块,用于当所述目标物理页的活跃度的值高于回收标准时,降低所述目标物理页的活跃度,活跃度的值高于所述回收标准的物理页处于活动状态;
第二读取模块,用于在所述降低模块降低所述目标物理页的活跃度之后,再次读取所述目标物理页的活跃度的值;
回收模块,用于当所述目标物理页的活跃度的值不高于所述回收标准时,回收所述目标物理页。
9.一种终端设备,其特征在于,所述终端设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至4中任意一项所述内存回收方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至4中任意一项所述内存回收方法的步骤。
CN201710628788.4A 2017-07-28 2017-07-28 一种内存回收方法及装置、终端设备及计算机可读存储介质 Active CN108228339B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710628788.4A CN108228339B (zh) 2017-07-28 2017-07-28 一种内存回收方法及装置、终端设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710628788.4A CN108228339B (zh) 2017-07-28 2017-07-28 一种内存回收方法及装置、终端设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN108228339A true CN108228339A (zh) 2018-06-29
CN108228339B CN108228339B (zh) 2021-08-13

Family

ID=62654255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710628788.4A Active CN108228339B (zh) 2017-07-28 2017-07-28 一种内存回收方法及装置、终端设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN108228339B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110543384A (zh) * 2019-09-05 2019-12-06 Oppo广东移动通信有限公司 内存的回写方法、装置、终端及存储介质
CN112817736A (zh) * 2019-11-15 2021-05-18 荣耀终端有限公司 一种内存的管理方法及电子设备
CN113392037A (zh) * 2020-03-12 2021-09-14 深圳市万普拉斯科技有限公司 内存回收方法、装置、计算机设备和存储介质
WO2023051094A1 (zh) * 2021-09-29 2023-04-06 华为技术有限公司 内存回收方法、装置、电子设备及可读存储介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101403992A (zh) * 2008-07-18 2009-04-08 华为技术有限公司 实现远程内存交换的方法、装置及系统
CN102207830A (zh) * 2011-05-27 2011-10-05 杭州宏杉科技有限公司 一种缓存动态分配管理方法及装置
US8639625B1 (en) * 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
CN103544063A (zh) * 2013-09-30 2014-01-29 三星电子(中国)研发中心 应用于安卓平台的进程清除方法和装置
CN104375896A (zh) * 2013-08-16 2015-02-25 联想(北京)有限公司 一种信息处理方法及电子设备
CN104461737A (zh) * 2014-12-10 2015-03-25 广东欧珀移动通信有限公司 一种内存管理方法和装置
US20150120989A1 (en) * 2013-10-31 2015-04-30 Lsi Corporation Tracking and Utilizing Second Level Map Index for Recycling of Solid State Drive Blocks
CN104838360A (zh) * 2012-09-04 2015-08-12 微软技术许可有限责任公司 基于配额的资源管理
CN105159777A (zh) * 2015-08-03 2015-12-16 中科创达软件股份有限公司 进程的内存回收方法及装置
CN105447037A (zh) * 2014-08-29 2016-03-30 优视科技有限公司 清除缓存的方法及装置
CN106095568A (zh) * 2016-06-01 2016-11-09 努比亚技术有限公司 内存管理装置、移动终端及方法
CN106201572A (zh) * 2016-06-23 2016-12-07 努比亚技术有限公司 移动终端和内存释放控制方法
CN106445835A (zh) * 2015-08-10 2017-02-22 北京忆恒创源科技有限公司 内存分配方法与装置
CN106776017A (zh) * 2016-11-28 2017-05-31 努比亚技术有限公司 一种清理应用内存和垃圾的装置及方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8639625B1 (en) * 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
CN101403992A (zh) * 2008-07-18 2009-04-08 华为技术有限公司 实现远程内存交换的方法、装置及系统
CN102207830A (zh) * 2011-05-27 2011-10-05 杭州宏杉科技有限公司 一种缓存动态分配管理方法及装置
CN104838360A (zh) * 2012-09-04 2015-08-12 微软技术许可有限责任公司 基于配额的资源管理
CN104375896A (zh) * 2013-08-16 2015-02-25 联想(北京)有限公司 一种信息处理方法及电子设备
CN103544063A (zh) * 2013-09-30 2014-01-29 三星电子(中国)研发中心 应用于安卓平台的进程清除方法和装置
US20150120989A1 (en) * 2013-10-31 2015-04-30 Lsi Corporation Tracking and Utilizing Second Level Map Index for Recycling of Solid State Drive Blocks
CN105447037A (zh) * 2014-08-29 2016-03-30 优视科技有限公司 清除缓存的方法及装置
CN104461737A (zh) * 2014-12-10 2015-03-25 广东欧珀移动通信有限公司 一种内存管理方法和装置
CN105159777A (zh) * 2015-08-03 2015-12-16 中科创达软件股份有限公司 进程的内存回收方法及装置
CN106445835A (zh) * 2015-08-10 2017-02-22 北京忆恒创源科技有限公司 内存分配方法与装置
CN106095568A (zh) * 2016-06-01 2016-11-09 努比亚技术有限公司 内存管理装置、移动终端及方法
CN106201572A (zh) * 2016-06-23 2016-12-07 努比亚技术有限公司 移动终端和内存释放控制方法
CN106776017A (zh) * 2016-11-28 2017-05-31 努比亚技术有限公司 一种清理应用内存和垃圾的装置及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
简欲明心: ""浅析JAVA的垃圾回收机制(GC)"", 《HTTPS://WWW.JIANSHU.COM/P/5261A62E4D29》 *
陈川: ""多路Flash并行存储技术的研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110543384A (zh) * 2019-09-05 2019-12-06 Oppo广东移动通信有限公司 内存的回写方法、装置、终端及存储介质
CN112817736A (zh) * 2019-11-15 2021-05-18 荣耀终端有限公司 一种内存的管理方法及电子设备
CN113392037A (zh) * 2020-03-12 2021-09-14 深圳市万普拉斯科技有限公司 内存回收方法、装置、计算机设备和存储介质
WO2023051094A1 (zh) * 2021-09-29 2023-04-06 华为技术有限公司 内存回收方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN108228339B (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN108228339A (zh) 一种内存回收方法及装置、终端设备及计算机可读存储介质
CN104808951B (zh) 进行存储控制的方法和设备
CN105045514B (zh) 一种应用进程管理方法及终端
CN105740078B (zh) 一种内存管理方法、装置及终端
CN108306956A (zh) 信息推送方法、装置、服务器及计算机可读介质
CN107730077A (zh) 节点任务数据显示方法、装置、存储介质和计算机设备
CN106933733A (zh) 一种确定内存泄露位置的方法和装置
CN104469717B (zh) 短信发送方法及装置
CN107391774A (zh) 基于重复数据删除的日志文件系统的垃圾回收方法
CN104793875A (zh) 应用的分屏方法与装置、智能终端
CN107291446A (zh) 一种桌面管理方法及装置
CN110457235A (zh) 内存压缩方法、装置、终端及存储介质
CN106776871A (zh) 一种多媒体文件的存储方法及移动终端
CN105893471A (zh) 一种数据处理方法及电子设备
CN108196944A (zh) 移动终端后台应用程序查看方法及装置
CN108153454B (zh) 多点触摸切换方法、装置、存储介质及终端设备
CN107220287A (zh) 用于日志查询的索引管理方法、装置、存储介质及设备
CN107122271A (zh) 一种恢复节点事件的方法、装置及系统
CN104360934B (zh) 一种移动终端及其应用程序通知处理方法
CN106599263A (zh) 一种内容筛选方法、系统及用户终端
CN106598926A (zh) 操作撤销方法及装置
CN106936979A (zh) 撤销操作的方法和设备
CN108228342A (zh) 终端设备控制方法及装置、终端设备及计算机可读存储介质
CN107329836A (zh) 多系统的内存管理方法、管理装置以及移动终端
CN108287761A (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