CN105701025A - 一种内存回收方法及装置 - Google Patents
一种内存回收方法及装置 Download PDFInfo
- Publication number
- CN105701025A CN105701025A CN201511032537.7A CN201511032537A CN105701025A CN 105701025 A CN105701025 A CN 105701025A CN 201511032537 A CN201511032537 A CN 201511032537A CN 105701025 A CN105701025 A CN 105701025A
- Authority
- CN
- China
- Prior art keywords
- memory
- application
- recycle
- user
- memory recycle
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及计算机技术领域,尤其涉及一种内存回收方法及装置,用以解决内存回收不及时、容易导致应用卡顿的问题。本申请提供的内存回收方法包括:监控终端内安装的应用被用户操作使用的信息及内存占用信息;若根据所述终端内安装的应用被用户操作使用的信息及内存占用信息中的至少一种,确定当前满足内存回收条件,则根据所述终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从所述终端当前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种内存回收方法及装置。
背景技术
出于对生产成本的考虑,终端设备的内存容量往往比较小,大多为1~2G。目前,内核对应用程序申请内存的需求是基于尽量满足的原则,这就导致在手机等终端产品上,消耗比较大的内存的应用(比如照相机)在启动、运行过程中常因申请不到足够的内存(比如有的应用会瞬间申请300MB~500MB内存)而卡顿,甚至导致应用反复退出、重启的现象。
Linux系统的内存回收策略是在内存不足时触发,比如,当有应用被启动或切换到前台界面时,用户态的应用进程会向内核态申请内存,若该应用需要占用的内存大于系统空闲内存,则会触发内存回收,具体通过近期最少使用(LeastRecentlyUsed,LRU)算法选取最久最不常用的内存进行回收,除此之外,还可以通过内存压缩、相同页的合并、开展内存碎片整理等进行内存回收。安卓(Android)系统是通过在内核态设置空闲内存等级来在内核态触发内存回收,比如若内存少于n1MB,则杀掉优先级最低的应用进程,若内存再少于n2(n1<n2)MB,则释放掉优先级高一级的应用进程。
上述内存回收策略由于都是在内核态发现可供使用的空闲内存较少时才触发内存回收,从而容易导致系统内利用率较低的内存无法得到及时释放。当发现空闲内存不足时再触发内存回收,就容易导致当前运行的应用由于不能及时申请到所需的内存而出现卡顿。
发明内容
本申请提供一种内存回收方法及装置,用以一定程度上解决内存回收不及时、容易导致应用卡顿的问题。
本申请提供一种内存回收方法,在用户态执行:监控终端内安装的应用被用户操作使用的信息及内存占用信息;若根据终端内安装的应用被用户操作使用的信息及内存占用信息中的至少一种,确定当前满足内存回收条件,则根据终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从终端当前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。
本申请通过在用户态监控终端内安装的应用被用户操作使用的情况及内存占用情况来主动进行内存回收,从而可以在应用被用户操作使用频繁、内存占用量较大的时候,加快内存回收频率,保证内存的正常使用。
作为一种实施方式,根据所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定当前满足内存回收条件,包括:根据终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔;在当前时间到达内存回收时间间隔所指示的内存回收时间时,确定当前满足内存回收条件。
在该实施方式下,首先根据用户使用应用的规律确定内存回收时间间隔,然后根据内存回收时间间隔所指示的内存回收时间主动进行内存回收,这种方式对内存进行有计划的回收,可以使终端内可用空闲内存保持在一个较佳的水平。
在上述实施方式中,确定内存回收时间间隔的一种可选方式为:分别确定在预设的至少一个时间段中的每个时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息;针对所述至少一个时间段中的每个时间段,分别根据在该时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定在该时间段内的内存回收时间间隔。
由于用户在不同的时间段内操作使用应用的频率不同,采用这种方式可以在不同的时间段使用不同的内存回收时间间隔,在进一步提高内存回收的及时性的同时,避免因频繁执行不必要的内存回收流程而浪费系统资源。
作为另一种实施方式,根据所述终端内安装的应用的内存占用信息,确定当前满足内存回收条件,包括:若确定系统内空闲内存小于第一设定阈值,则确定当前满足内存回收条件。
采用这种方式,可以一定程度上避免出现内存不足的情况出现。
作为又一种实施方式,根据终端内安装的应用被用户操作使用的信息及内存占用信息,确定当前满足内存回收条件,包括:若监测到有应用被启动或切换到前台界面,则根据该应用的内存占用信息,以及系统内空闲内存大小,判断是否需要进行内存回收;若需要进行内存回收,则确定当前满足内存回收条件。
由于新启动应用或切换到前台界面的应用通常是用户即将使用的应用,采用这种方式可以保证新启动应用或切换到前台界面的应用的正常运行,从而提升系统性能,提高用户体验。
作为再一种实施方式,根据终端内安装的应用被用户操作使用的信息,确定当前满足内存回收条件,包括:若当前在后台运行的应用的个数大于设置的允许后台运行应用的个数,则确定当前满足内存回收条件。
进一步地,这里可以每隔一段时间根据当前空闲内存大小来设置允许后台运行应用的个数。由于后台运行的应用通常不是用户正在操作使用的应用,限制这部分应用的个数,可以避免对内存的过多无效占用。
在上述实施方式中,确定将被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收的一种可选方式为:根据预先保存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的、用户没有在操作使用的应用,确定当前时间是否位于选择的应用的高概率使用时间段,该应用的高概率使用时间段为基于该应用被用户操作使用的信息确定的;若不是,则确定选择的所述应用为被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收;重复上述步骤,直到满足内存回收的终止条件。
采用这种方式,优先选择回收优先级较低(这部分应用通常是用户不常使用的应用)的、且当前时间不在其高概率运行时间段的应用的内存,可以进一步提高系统性能,提升用户体验。
上述实施方式中,内存回收的终止条件可以包括以下条件中的一种或多种:
系统内空闲内存大小大于第二设定阈值;
当前启动的应用所需的内存小于系统空闲内存;
切换到前台界面的应用所需的内存小于系统空闲内存;
后台运行应用的个数小于或等于设置的允许后台运行应用的个数。
进一步地,可以根据以下步骤设置被回收内存的应用的优先级顺序:
按照终端内安装各个应用的使用频率,对各个应用进行分组,其中,同组内的应用具有相同的使用频率范围;根据每个分组对应的使用频率范围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用具有相同的优先级顺序。
作为又一种实施方式,根据所述终端内安装的应用被用户操作使用的信息,确定当前满足内存回收条件,通过调用内核态提供的内存回收接口执行内存回收,包括:若监测到终端内存在应用在后台停留的时间长度超过设定时长,则确定当前满足内存回收条件,通过调用内核态提供的内存回收接口对在后台停留的时间长度超过设定时长的应用的内存进行回收。
这里,在后台停留时间较长的应用一般是用户当前一段时间不再操作的应用,可以释放掉这部分应用的内存,以便提供给更有需要的应用,从而提高了对内存的有效利用率。
本申请还提供一种内存回收装置,包括:
确定模块,用于在用户态监控终端内安装的应用被用户操作使用的信息及内存占用信息;
内存回收模块,用于若根据所述终端内安装的应用被用户操作使用的信息及内存占用信息中的至少一种,确定当前满足内存回收条件,则根据所述终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从所述终端当前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。
本申请通过在用户态监控终端内安装的应用被用户操作使用的情况及内存占用情况来主动进行内存回收,从而可以在应用被用户操作使用频繁、内存占用量较大的时候,加快内存回收频率,保证内存的正常使用。
作为一种实施方式,内存回收模块具体用于:
根据终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔;在当前时间到达所述内存回收时间间隔所指示的内存回收时间时,确定当前满足内存回收条件。
在该实施方式下,首先根据用户使用应用的规律确定内存回收时间间隔,然后根据内存回收时间间隔所指示的内存回收时间主动进行内存回收,这种方式对内存进行有计划的回收,可以使终端内可用空闲内存保持在一个较佳的水平。
在上述实施方式中,内存回收模块确定内存回收时间间隔的一种可选方式为:分别确定在预设的至少一个时间段中的每个时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息;针对所述至少一个时间段中的每个时间段,分别根据在该时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定在该时间段内的内存回收时间间隔。
由于用户在不同的时间段内操作使用应用的频率不同,采用这种方式可以在不同的时间段使用不同的内存回收时间间隔,在进一步提高内存回收的及时性的同时,避免因频繁执行不必要的内存回收流程而浪费系统资源。
作为另一种实施方式,内存回收模块具体用于:若确定系统内空闲内存小于第一设定阈值,则确定当前满足内存回收条件。
采用这种方式,可以避免出现内存不足的情况出现。
作为又一种实施方式,内存回收模块具体用于:若监测到有应用被启动或切换到前台界面,则根据该应用的内存占用信息,以及系统内空闲内存大小,判断是否需要进行内存回收;若需要进行内存回收,则确定当前满足内存回收条件。
由于新启动应用或切换到前台界面的应用通常是用户即将使用的应用,采用这种方式可以保证新启动应用或切换到前台界面的应用的正常运行,从而提升系统性能,也提高了用户体验。
作为再一种实施方式,内存回收模块具体用于:若当前在后台运行的应用的个数大于设置的允许后台运行应用的个数,则确定当前满足内存回收条件。
进一步地,这里可以每隔一段时间根据当前空闲内存大小来设置允许后台运行应用的个数。由于后台运行的应用通常不是用户正在操作使用的应用,限制这部分应用的个数,可以避免对内存的过多无效占用。
在上述实施方式中,内存回收模块确定将被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收的一种可选方式为:根据预先保存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的、用户没有在操作使用的应用,确定当前时间是否位于选择的应用的高概率使用时间段,该应用的高概率使用时间段为基于该应用被用户操作使用的信息确定的;若不是,则确定选择的所述应用为被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收;重复上述步骤,直到满足内存回收的终止条件。
采用这种方式,优先选择回收优先级较低(这部分应用通常是用户不常使用的应用)的、且当前时间不在其高概率运行时间段的应用的内存,可以进一步提高系统性能,提升用户体验。
上述实施方式中,内存回收的终止条件可以包括以下条件中的一种或多种:
系统内空闲内存大小大于第二设定阈值;
当前启动的应用所需的内存小于系统空闲内存;
切换到前台界面的应用所需的内存小于系统空闲内存;
后台运行应用的个数小于或等于设置的允许后台运行应用的个数。
进一步地,内存回收模块可以具体用于根据以下步骤设置被回收内存的应用的优先级顺序:按照终端内安装各个应用的使用频率,对各个应用进行分组,其中,同组内的应用具有相同的使用频率范围;根据每个分组对应的使用频率范围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用具有相同的优先级顺序。
作为又一种实施方式,内存回收模块具体用于:若监测到终端内存在应用在后台停留的时间长度超过设定时长,则确定当前满足内存回收条件,通过调用内核态提供的内存回收接口对在后台停留的时间长度超过设定时长的应用的内存进行回收。
本申请提供一种用户设备,该用户设备包括处理器、存储器、和总线;存储器用于存储执行指令,包括内存和外部存储器;这里的内存也称内存储器,用于暂时存放处理器中的运算数据,以及与硬盘等外部存储器交换的数据,处理器通过内存与外部存储器进行数据交换,当用户设备运行时,处理器与存储器之间通过总线通信,使得处理器在用户态执行以下指令:
监控终端内安装的应用被用户操作使用的信息及内存占用信息;在根据终端内安装的应用被用户操作使用的信息及内存占用信息中的至少一种,确定当前满足内存回收条件时,根据终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从终端当前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。
本申请通过在用户态监控终端内安装的应用被用户操作使用的情况及内存占用情况来主动进行内存回收,从而可以在应用被用户操作使用频繁、内存占用量较大的时候,加快内存回收频率,保证内存的正常使用。
作为一种实施方式,处理器执行的指令中,根据所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定当前满足内存回收条件,包括:根据终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔;在当前时间到达内存回收时间间隔所指示的内存回收时间时,确定当前满足内存回收条件。
在该实施方式下,首先根据用户使用应用的规律确定内存回收时间间隔,然后根据内存回收时间间隔所指示的内存回收时间主动进行内存回收,这种方式对内存进行有计划的回收,可以使终端内可用空闲内存保持在一个较佳的水平。
在上述实施方式中,处理器执行的指令中,确定内存回收时间间隔的一种可选方式为:
分别确定在预设的至少一个时间段中的每个时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息;针对所述至少一个时间段中的每个时间段,分别根据在该时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定在该时间段内的内存回收时间间隔。
由于用户在不同的时间段内操作使用应用的频率不同,采用这种方式可以在不同的时间段使用不同的内存回收时间间隔,在进一步提高内存回收的及时性的同时,避免因频繁执行不必要的内存回收流程而浪费系统资源。
作为另一种实施方式,处理器执行的指令中,根据终端内安装的应用的内存占用信息,确定当前满足内存回收条件,包括:若确定系统内空闲内存小于第一设定阈值,则确定当前满足内存回收条件。
采用这种方式,可以避免出现内存不足的情况出现。
作为又一种实施方式,处理器执行的指令中,根据终端内安装的应用被用户操作使用的信息及内存占用信息,确定当前满足内存回收条件,包括:若监测到有应用被启动或切换到前台界面,则根据该应用的内存占用信息,以及系统内空闲内存大小,判断是否需要进行内存回收;若需要进行内存回收,则确定当前满足内存回收条件。
由于新启动应用或切换到前台界面的应用通常是用户即将使用的应用,采用这种方式可以保证新启动应用或切换到前台界面的应用的正常运行,从而提升系统性能,也提高了用户体验。
作为再一种实施方式,处理器执行的指令中,根据终端内安装的应用被用户操作使用的信息,确定当前满足内存回收条件,包括:若当前在后台运行的应用的个数大于设置的允许后台运行应用的个数,则确定当前满足内存回收条件。
进一步地,这里可以每隔一段时间根据当前空闲内存大小来设置允许后台运行应用的个数。由于后台运行的应用通常不是用户正在操作使用的应用,限制这部分应用的个数,可以避免对内存的过多无效占用。
在上述实施方式中,处理器执行的指令中,确定将被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收的一种可选方式为:根据预先保存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的、用户没有在操作使用的应用,确定当前时间是否位于选择的应用的高概率使用时间段,该应用的高概率使用时间段为基于该应用被用户操作使用的信息确定的;若不是,则确定选择的所述应用为被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收;重复上述步骤,直到满足内存回收的终止条件。
采用这种方式,优先选择回收优先级较低(这部分应用通常是用户不常使用的应用)的、且当前时间不在其高概率运行时间段的应用的内存,可以进一步提高系统性能,提升用户体验。
上述实施方式中,内存回收的终止条件可以包括以下条件中的一种或多种:
系统内空闲内存大小大于第二设定阈值;
当前启动的应用所需的内存小于系统空闲内存;
切换到前台界面的应用所需的内存小于系统空闲内存;
后台运行应用的个数小于或等于设置的允许后台运行应用的个数。
进一步地,处理器执行的指令中,设置被回收内存的应用的优先级顺序的一种可选方式为:
按照终端内安装各个应用的使用频率,对各个应用进行分组,其中,同组内的应用具有相同的使用频率范围;根据每个分组对应的使用频率范围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用具有相同的优先级顺序。
作为又一种实施方式,处理器执行的指令中,根据所述终端内安装的应用被用户操作使用的信息,确定当前满足内存回收条件,通过调用内核态提供的内存回收接口执行内存回收,包括:若监测到终端内存在应用在后台停留的时间长度超过设定时长,则确定当前满足内存回收条件,通过调用内核态提供的内存回收接口对在后台停留的时间长度超过设定时长的应用的内存进行回收。
这里,在后台停留时间较长的应用一般是用户当前一段时间不再操作的应用,可以释放掉这部分应用的内存,以便提供给更有需要的应用,从而提高了对内存的有效利用率。
附图说明
图1为本申请提供的内存回收示意图;
图2为本申请实施例一提供的内存回收方法流程图;
图3为本申请实施例二提供的内存回收方法流程图;
图4为本申请实施例三提供的内存回收方法流程图;
图5为本申请实施例提供的内存回收装置50结构示意图;
图6为本申请实施例提供的用户设备60结构示意图;
图7为本申请提供的一种终端设备700的结构示意图;
图8为本申请实施例终端800的结构示意图。
具体实施方式
如图1所示,为本申请提供的内存回收示意图。本申请通过在用户态运行内存回收策略,并通过内核态提供的内存回收接口进行内存回收。具体地,通过监测终端内安装的应用(Application,App)被用户操作使用的信息及内存占用信息来触发内存回收,在满足内存回收条件后,根据终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从当前正在运行的应用中选取被回收内存的应用,并通过调用内核态提供给用户态的内存回收接口进行内存回收。本申请通过在用户态监控应用被用户操作使用的信息及内存占用信息主动进行内存回收,从而可以在应用被用户操作使用频繁、内存占用量较大的时候,加快内存回收频率,保证内存回收的及时性。
下面结合说明书附图对本申请实施例作进一步详细描述。
实施例一
如图2所示,为本申请实施例一提供的内存回收方法流程图,在用户态执行以下步骤:
S201:监控终端内安装的应用被用户操作使用的信息及内存占用信息。
这里,所述内存占用信息可以包括应用运行时占用的内存大小,应用被用户操作使用的信息可以包括用户对应用的使用频率、使用时间段、使用时长等。
在具体实施中,可以在用户态使用监控进程实时监控终端系统内各个应用的运行状态及应用运行时占用的内存大小,通过监控得到的应用的运行状态可以确定用户对应用的使用频率、使用时间段、使用时长等。这里,用户对应用的使用时间段可以是指在预设的多个时间段内,用户使用了该应用的时间段。也可以是指从用户开始操作应用到结束操作应用的实际时间段。
这里,监控终端系统内各个应用的运行状态可以包括监控应用启动的状态、应用关闭的状态、应用从后台切换到前台界面的状态、及从前台界面切换到后台的状态等。监控进程具体可以通过proc文件系统提供的查询接口来查询得到应用的上述运行状态。
在具体实施中,针对不同的应用,统计应用被用户操作使用的信息的方式可以不同。比如,针对微信、日历等需要用户在前台界面操作的应用,可以将应用被启动或者切换到前台界面的时间作为用户开始操作该应用的时间,将应用被关闭或者切换到后台运行的时间作为用户结束操作该应用的时间。针对下载软件等无需用户始终在前台界面操作的应用,可以将应用被启动的时间作为用户开始操作该应用的时间,将应用被关闭的时间作为用户结束操作该应用的时间。根据统计的用户开始操作应用的时间及结束操作应用的时间,可以确定用户对该应用的使用频率、使用时间段及使用时长等。
S202:基于根据所述终端内安装的应用被用户操作使用的信息及内存占用信息中的至少一种,判断当前是否满足内存回收条件,若满足,则进入S203,否则返回S201。
在具体实施中,可以根据实际需要设置在用户态触发内存回收的条件,比如可以根据终端内安装的应用被用户操作使用的信息及内存占用信息确定内存回收时间间隔,按照预设的内存回收时间间隔触发内存回收,实现对内存进行有计划的回收,使终端内可用空闲内存保持在一个较佳的水平。这里,预设的内存回收时间间隔可以为一个,也可以为多个,比如,若用户全天使用应用的频率及内存占用量都比较稳定,可以只设置一个内存回收时间间隔。或者,若用户全天只集中在一个时间段内使用应用,且使用应用的频率比较稳定,则可以只设置在这一个时间段内的内存回收时间间隔,在其它时间段不进行内存回收。若用户在一天内的不同时间段使用应用的频率区别较大,则可以在一天内的不同时间段使用不同的内存回收时间间隔。除此之外,还可以设置系统内空闲内存小于一定阈值时触发内存回收(即根据终端内安装的应用的内存占用信息触发内存回收)、在监测到有应用被启动或切换到前台界面时,根据该应用的内存占用信息以及系统内空闲内存大小触发内存回收(即根据应用被用户操作使用的信息及内存占用信息触发内存回收)、在监测到终端内存在应用在后台停留的时间长度超过设定时长时触发内存回收(即根据应用被用户操作使用的信息触发内存回收)等。
S203:根据所述终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从所述终端当前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。
这里,S201及S202中的终端内安装的应用包括S203中的终端内当前正在运行的应用,除S203中的终端内当前正在运行的应用之外,终端内安装的应用还包括当前处于关闭状态的应用。
在具体实施中,在用户态通过内核态提供的内存回收接口,调用内核态的内存回收程序进行内存回收,该内存回收接口可以基于系统调用、linuxprocfs文件系统、或linuxsysfs文件系统等来实现。
在linux系统中,内核态现有的内存回收管理是基于LRU算法实现的,它将应用占用的内存分成匿名页(比如通过动态内存分配(malloc)函数分配的内存)和文件页(比如读写文件时分配的内存)两大类,并根据LRU算法将最近不常使用的内存放到一个链表中,每次回收时收缩该链表,回收一部分内存页面(主要是页面缓存(pagecache))。内核态用于内存回收的底层函数是try_to_free_pages(),本申请将这个函数接口暴露给用户态调用,在用户态基于本申请提供的内存回收策略,通过调用这个函数接口实现内存回收。
实施例二
下面,介绍本申请的一种优选的实施方式:通过统计所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔,基于确定的内存回收时间间隔进行内存回收。
如图3所示,为本申请实施例二提供的内存回收方法流程图,在用户态执行以下步骤:
S301:监控终端内安装的应用被用户操作使用的信息及内存占用信息。
在具体实施中,通过在用户态实时监测终端系统内各个应用的运行状态,统计用户对应用的使用频率、使用时间段等应用被用户操作使用的信息,以及应用运行时占用的内存大小等内存占用信息。
S302:根据所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔。
这里,可以根据在S301统计得到的各个应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔。该内存回收时间间隔可以为一个,也可以为多个,比如,若用户全天使用应用的频率及内存占用量都比较一致,则可以只设置一个内存回收时间间隔。若用户在一天内的不同时间段使用应用的频率不同,则可以在一天内的不同时间段使用不同的内存回收时间间隔,比如可以在应用使用频繁、占用的内存量较大的时间段内加快内存回收频率,相反,可以在应用使用次数较少,占用的内存量较小的时间段内减少内存回收频率。
在具体实施中,可以依经验,预设几个时间段,确定在每个预设的时间段内,终端内安装的应用被用户操作使用的信息及内存占用信息;根据在每个预设的时间段内,终端内安装的应用被用户操作使用的信息及内存占用信息,确定在每个预设的时间段内的内存回收时间间隔。
比如,以一天为粒度,预设9:00-17:00、17:00-23:00、23:00-9:00这几个时间段,分别统计在这几个时间段内应用被用户操作使用的信息及内存占用信息,比如,在17:00-23:00这个时间段内,用户对应用的使用最为频繁,应用占用的内存大小也最大,可以将该时间段的内存回收时间间隔设为0.5h;在9:00-17:00这个时间段内,用户对应用的使用频次居中,占用的内存大小也居中,可以将该时间段的内存回收时间间隔设为1h;在23:00-9:00这个时间段内,用户对应用的使用频次最低,占用的内存大小也最小,可以将该时间段的内存回收时间间隔设为3h。再比如,还可以考虑在一周时间内的工作日和非工作日对应用使用情况的不同,分别为工作日和非工作日设置不同的内存回收时间间隔;比如,用户在周六、日使用应用的频率明显比工作日使用应用的频率频繁,则可以在周一~周五仍使用上述内存回收时间间隔,在周六、日加快内存回收频率,比如,在周六、日分别将在9:00-17:00、17:00-23:00、23:00-9:00这几个时间段内的内存回收时间间隔减半,也即,将在17:00-23:00这个时间段内的内存回收时间间隔设为0.25h,将在9:00-17:00这个时间段内的内存回收时间间隔设为0.5h,将在23:00-9:00这个时间段内的内存回收时间间隔设为1.5h。
S303:若根据所述内存回收时间间隔确定当前需要进行内存回收,则根据所述终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从所述终端当前正在运行的应用中确定将被回收内存的应用。这里,为了保证用户对应用的正常使用,用户当前正在使用的应用不被考虑进行内存回收,用户正在使用的应用可以包括前台应用,还可以包括如文件下载等在后台运行的应用。
S304:通过调用内核态提供的内存回收接口执行内存回收。
在具体实施中,根据确定的内存回收时间间隔,当达到内存回收时间时,针对终端内当前正在运行的、用户没在操作使用的应用,若当前时间也不在统计的该应用被用户使用的概率较大的时间范围内,则可以回收该应用的内存,这样,依次选择应用进行内存回收,直到满足内存回收的终止条件。
作为一种实施方式,在确定当前需要进行内存回收后,可以按照预先保存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的、用户没有在操作使用的应用,确定当前时间是否位于选择的应用的高概率使用时间段(也即应用被用户操作使用的概率较高的时间段),该应用的高概率使用时间段为基于该应用被用户操作使用的信息确定的(比如用户在连续5天内的每天中午12:00~13:00之间使用该应用,则12:00~13:00即为该应用的高概率运行时间段);若不是,则确定选择的应用为被回收内存的应用,如此重复,直到满足内存回收的终止条件。这里,所述内存回收的终止条件可以包括指系统内空闲内存大小大于第二设定阈值。
上述优先级顺序可以是不同应用分组之间的优先级顺序。具体地,可以按照终端内安装各个应用的使用频率,对各个应用进行分组,其中,同组内的应用具有相同的使用频率范围;根据每个分组对应的使用频率范围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用具有相同的优先级顺序。比如,某些应用可能涉及终端内操作系统的关键要素,如用户界面(UserInterface,UI),可以将这类应用归于组(group)1,表示非常重要的应用;对于一些用户经常使用的应用,如微信、相机等,可以将这类应用归于group2,表示为一般重要的应用;对于另一些不常使用的应用,如计算器、股票等,可以将这类应用归于group3,表示不重要的应用;设置group3的内存回收优先级>group2的内存回收优先级>group1的内存回收优先级,在内存回收时,优先考虑回收group3中的应用的内存,次要考虑回收group2中的应用的内存,不回收group1中的应用的内存。
实施例三
为了进一步优化内存回收策略,保证内存回收的及时性和合理性,本申请实施例进一步给出了使用多种内存回收条件执行内存回收的实施方式。
如图4所示,为本申请实施例三提供的内存回收方法流程图,在用户态执行:
S401:监控终端内安装的应用被用户操作使用的信息及内存占用信息。
S402:根据所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔。
S403:当满足以下条件一~四中的任意一个或多个时,触发S404的内存回收流程,当满足条件五时,触发S405的内存回收流程:
一、根据所述内存回收时间间隔确定当前需要进行内存回收;
在具体实施中,还可以结合系统内空闲内存判断当前是否需要进行内存回收,也即在当前到达内存回收时间间隔指示的内存回收时间时,若系统内空闲内存小于某一阈值(该阈值可以是下述第一设定阈值、或第二设定阈值、或其它阈值,比如位于第一设定阈值和第二设定阈值之间(第一设定阈值小于第二设定阈值)的某一阈值),则可以进行内存回收。
二、监测到系统内空闲内存小于第一设定阈值;
三、当监测到有应用被启动或切换到前台界面时,根据该应用的内存占用信息,以及系统内空闲内存大小,确定当前需要进行内存回收;
这里,当新启动或切换到前台界面的应用需要的内存大小大于系统内空闲内存时,立即触发内存回收。
四、在后台运行的应用的个数M大于当前设置的允许后台运行应用的个数N;
在具体实施中,可以根据当前系统内空闲内存的大小,设置允许后台运行应用的个数。
五、监测到终端内存在应用在后台停留的时间长度超过设定时长。
需要说明的是,对于上述条件二~五,本领域技术人员根据实际需要可以只选择执行其中的部分条件。
S404:根据终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从所述终端当前正在运行的、用户没有在操作使用的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。
在具体实施中,终端系统启动后,首先启动本申请用于内存回收的用户态的守护进程,然后启动各个应用,并维护一张应用运行数据表,记录终端内应用的内存占用情况,及统计的高概率运行时间段,如下表一所示。
应用 | 占用的内存 | 高概率运行时间段 |
App1 | x1KB | T1-T2 |
App2 | x2KB | T3-T4 |
App3 | x3KB | T5-T6 |
App4 | x4KB | T7-T8 |
…… | …… | …… |
表一
若确定当前需要进行内存回收,则可以按照预先保存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的应用,查看表一,判断当前时间是否位于选择的应用的高概率使用时间段;若不是,则将选择的该应用选取为被回收内存的应用,并通过调用内核态提供的用于内存回收的内存回收接口进行内存回收,直到满足内存回收的终止条件。这里,基于条件一~四的不同,上述内存回收的终止条件可以包括:系统内空闲内存大小大于第二设定阈值、当前启动的应用所需的内存小于系统空闲内存、切换到前台界面的应用所需的内存小于系统空闲内存、后台运行应用的个数小于或等于设置的允许后台运行应用的个数中的一种或多种。比如,针对条件一、二,内存回收的终止条件可以是系统内空闲内存大小大于第二设定阈值(第二设定阈值大于第一设定阈值),针对条件三,内存回收的终止条件可以是当前启动的应用所需的内存小于系统空闲内存;针对条件四,内存回收的终止条件可以是后台运行应用的个数等于设置的个数,也即在S303中,从后台运行的应用中选取M-N个被回收内存的应用。
S405:通过调用内核态提供的内存回收接口,对在后台停留的时间长度超过设定时长的应用的内存进行回收。
基于同一发明构思,本申请还提供了与内存回收方法对应的内存回收装置及用户设备,由于该装置及用户设备解决问题的原理与本申请的内存回收方法相似,因此该装置及用户设备的实施可以参见方法的实施,重复之处不再赘述。
实施例四
如图5所示,为本申请实施例提供的内存回收装置50结构示意图,包括:
确定模块51,用于在用户态监控终端内安装的应用被用户操作使用的信息及内存占用信息;
内存回收模块52,用于若根据所述终端内安装的应用被用户操作使用的信息及内存占用信息中的至少一种,确定当前满足内存回收条件,则根据所述终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从所述终端当前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。
本申请通过在用户态监控终端内安装的应用被用户操作使用的情况及内存占用情况来主动进行内存回收,从而可以在应用被用户操作使用频繁、内存占用量较大的时候,加快内存回收频率,保证内存的正常使用。
可选地,所述内存回收模块52具体用于:
根据所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔;在当前时间到达所述内存回收时间间隔所指示的内存回收时间时,确定当前满足内存回收条件。
在该实施方式下,内存回收模块52首先根据用户使用应用的规律确定内存回收时间间隔,然后根据内存回收时间间隔所指示的内存回收时间主动进行内存回收,这种方式对内存进行有计划的回收,可以使终端内可用空闲内存保持在一个较佳的水平。
可选地,所述内存回收模块52具体用于根据以下步骤确定内存回收时间间隔:
分别确定在预设的至少一个时间段中的每个时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息;针对所述至少一个时间段中的每个时间段,分别根据在该时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定在该时间段内的内存回收时间间隔。
由于用户在不同的时间段内操作使用应用的频率不同,采用这种方式可以在不同的时间段使用不同的内存回收时间间隔,在进一步提高内存回收的及时性的同时,避免因频繁执行不必要的内存回收流程而浪费系统资源。
可选地,所述内存回收模块52具体用于:
若确定系统内空闲内存小于第一设定阈值,则确定当前满足内存回收条件。
采用这种方式,可以一定程度上避免出现内存不足的情况出现。
可选地,所述内存回收模块52具体用于:
若监测到有应用被启动或切换到前台界面,则根据该应用的内存占用信息,以及系统内空闲内存大小,判断是否需要进行内存回收;若需要进行内存回收,则确定当前满足内存回收条件。
由于新启动应用或切换到前台界面的应用通常是用户即将使用的应用,采用这种方式可以保证新启动应用或切换到前台界面的应用的正常运行,从而提升系统性能,提高用户体验。
可选地,所述内存回收模块52具体用于:
若当前在后台运行的应用的个数大于设置的允许后台运行应用的个数,则确定当前满足内存回收条件。
进一步地,这里可以每隔一段时间根据当前空闲内存大小来设置允许后台运行应用的个数。由于后台运行的应用通常不是用户正在操作使用的应用,限制这部分应用的个数,可以避免对内存的过多无效占用。
可选地,所述内存回收模块52具体用于:
根据预先保存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的、用户没有在操作使用的应用,确定当前时间是否位于选择的应用的高概率使用时间段,该应用的高概率使用时间段为基于该应用被用户操作使用的信息确定的;若不是,则确定选择的所述应用为被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收;重复上述步骤,直到满足内存回收的终止条件。
采用这种方式,优先选择回收优先级较低(这部分应用通常是用户不常使用的应用)的、且当前时间不在其高概率运行时间段的应用的内存,可以进一步提高系统性能,提升用户体验。
可选地,所述内存回收的终止条件包括以下条件中的一种或多种:
系统内空闲内存大小大于第二设定阈值;
当前启动的应用所需的内存小于系统空闲内存;
切换到前台界面的应用所需的内存小于系统空闲内存;
后台运行应用的个数小于或等于设置的允许后台运行应用的个数。
可选地,所述内存回收模块52具体用于根据以下步骤设置被回收内存的应用的优先级顺序:
按照终端内安装各个应用的使用频率,对各个应用进行分组,其中,同组内的应用具有相同的使用频率范围;
根据每个分组对应的使用频率范围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用具有相同的优先级顺序。
可选地,所述内存回收模块52具体用于:
若监测到终端内存在应用在后台停留的时间长度超过设定时长,则对在后台停留的时间长度超过设定时长的应用的内存进行回收。
这里,在后台停留时间较长的应用一般是用户当前一段时间不再操作的应用,可以释放掉这部分应用的内存,以便提供给更有需要的应用,从而提高了对内存的有效利用率。
实施例五
如图6所示,为本申请实施例提供的用户设备60结构示意图,包括处理器61、存储器62、和总线63;存储器62用于存储执行指令,包括内存621和外部存储器622;这里的内存621也称内存储器,用于暂时存放处理器61中的运算数据,以及与硬盘等外部存储器622交换的数据,处理器61通过内存621与外部存储器622进行数据交换,当所述用户设备60运行时,所述处理器61与所述存储器62之间通过总线63通信,使得所述处理器61在用户态执行以下指令:
监控终端内安装的应用被用户操作使用的信息及内存占用信息;在根据终端内安装的应用被用户操作使用的信息及内存占用信息中的至少一种,确定当前满足内存回收条件时,根据终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从终端当前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。
可选地,处理器61执行的指令中,根据所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定当前满足内存回收条件,包括:根据终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔;在当前时间到达内存回收时间间隔所指示的内存回收时间时,确定当前满足内存回收条件。
可选地,处理器61执行的指令中,确定内存回收时间间隔包括:
分别确定在预设的至少一个时间段中的每个时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息;针对所述至少一个时间段中的每个时间段,分别根据在该时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定在该时间段内的内存回收时间间隔。。
可选地,处理器61执行的指令中,根据终端内安装的应用的内存占用信息,确定当前满足内存回收条件,包括:若确定系统内空闲内存小于第一设定阈值,则确定当前满足内存回收条件。
可选地,处理器61执行的指令中,根据终端内安装的应用被用户操作使用的信息及内存占用信息,确定当前满足内存回收条件,包括:若监测到有应用被启动或切换到前台界面,则根据该应用的内存占用信息,以及系统内空闲内存大小,判断是否需要进行内存回收;若需要进行内存回收,则确定当前满足内存回收条件。
可选地,处理器61执行的指令中,根据终端内安装的应用被用户操作使用的信息,确定当前满足内存回收条件,包括:若当前在后台运行的应用的个数大于设置的允许后台运行应用的个数,则确定当前满足内存回收条件。
进一步地,这里可以每隔一段时间根据当前空闲内存大小来设置允许后台运行应用的个数。由于后台运行的应用通常不是用户正在操作使用的应用,限制这部分应用的个数,可以避免对内存的过多无效占用。
可选地,处理器61执行的指令中,确定将被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收,包括:根据预先保存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的、用户没有在操作使用的应用,确定当前时间是否位于选择的应用的高概率使用时间段,该应用的高概率使用时间段为基于该应用被用户操作使用的信息确定的;若不是,则确定选择的所述应用为被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收;重复上述步骤,直到满足内存回收的终止条件。
可选地,所述内存回收的终止条件包括以下条件中的一种或多种:
系统内空闲内存大小大于第二设定阈值;
当前启动的应用所需的内存小于系统空闲内存;
切换到前台界面的应用所需的内存小于系统空闲内存;
后台运行应用的个数小于或等于设置的允许后台运行应用的个数。
可选地,处理器61执行的指令中,设置被回收内存的应用的优先级顺序,包括:
按照终端内安装各个应用的使用频率,对各个应用进行分组,其中,同组内的应用具有相同的使用频率范围;根据每个分组对应的使用频率范围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用具有相同的优先级顺序。
可选地,处理器61执行的指令中,根据所述终端内安装的应用被用户操作使用的信息,确定当前满足内存回收条件,通过调用内核态提供的内存回收接口执行内存回收,包括:若监测到终端内存在应用在后台停留的时间长度超过设定时长,则确定当前满足内存回收条件,通过调用内核态提供的内存回收接口对在后台停留的时间长度超过设定时长的应用的内存进行回收。
实施例六
图7描述了本申请提供的一种终端设备700的结构,包括:至少一个处理器701、至少一个网络接口704或者其它用户接口703、存储器705、至少一个通信总线702,通信总线702用于实现这些组件之间的连接通信。这里,存储器705包括内存和外部存储器,这里的内存也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器交换的数据,处理器701通过内存与外部存储器进行数据交换。
存储器705中存储了如下的元素,可执行模块或者数据结果,或者他们的子集,或者他们的扩展集:
操作系统7051,包含各种系统程序,可以具有内核态7051a和用户态7051b两种运行级别。当一个进程执行系统调用而陷入内核代码中执行时,称其处于内核运行态,简称内核态。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈,每个进程都有自己的内核栈。当进程在执行用户自己的代码时,称其处于用户运行态,简称用户态,此时处理器701在特权级最低的用户代码中运行。
应用程序模块7052,包含各种应用程序(简称应用)。
在本申请实施例中,通过调用存储器705存储的程序或指令,处理器701用于在用户态执行:
监控终端内安装的应用被用户操作使用的信息及内存占用信息;在根据终端内安装的应用被用户操作使用的信息及内存占用信息中的至少一种,确定当前满足内存回收条件时,根据终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从终端当前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。
可选地,作为一个实施例,处理器701还用于:根据终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔;在当前时间到达内存回收时间间隔所指示的内存回收时间时,确定当前满足内存回收条件。
进一步地,处理器701还用于:分别确定在预设的至少一个时间段中的每个时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息;针对所述至少一个时间段中的每个时间段,分别根据在该时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定在该时间段内的内存回收时间间隔。
可选地,作为另一个实施例,处理器701还用于:若确定系统内空闲内存小于第一设定阈值,则确定当前满足内存回收条件。
可选地,作为又一个实施例,处理器701还用于:若监测到有应用被启动或切换到前台界面,则根据该应用的内存占用信息,以及系统内空闲内存大小,判断是否需要进行内存回收;若需要进行内存回收,则确定当前满足内存回收条件。
可选地,作为再一个实施例,处理器701还用于:若当前在后台运行的应用的个数大于设置的允许后台运行应用的个数,则确定当前满足内存回收条件。
进一步地,这里可以每隔一段时间根据当前空闲内存大小来设置允许后台运行应用的个数。由于后台运行的应用通常不是用户正在操作使用的应用,限制这部分应用的个数,可以避免对内存的过多无效占用。
进一步地,处理器701还用于:确定将被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收,包括:根据预先保存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的、用户没有在操作使用的应用,确定当前时间是否位于选择的应用的高概率使用时间段,该应用的高概率使用时间段为基于该应用被用户操作使用的信息确定的;若不是,则确定选择的所述应用为被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收;重复上述步骤,直到满足内存回收的终止条件。
所述内存回收的终止条件包括以下条件中的一种或多种:
系统内空闲内存大小大于第二设定阈值;
当前启动的应用所需的内存小于系统空闲内存;
切换到前台界面的应用所需的内存小于系统空闲内存;
后台运行应用的个数小于或等于设置的允许后台运行应用的个数。
进一步地,处理器701还用于:按照终端内安装各个应用的使用频率,对各个应用进行分组,其中,同组内的应用具有相同的使用频率范围;根据每个分组对应的使用频率范围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用具有相同的优先级顺序。
可选地,作为再一个实施例,处理器701还用于:若监测到终端内存在应用在后台停留的时间长度超过设定时长,则对在后台停留的时间长度超过设定时长的应用的内存进行回收。
另外,终端设备700还可执行图2~4的方法及实施例,本申请实施例在此不再赘述。
可见,采用上述方案后,可以在应用被用户操作使用频繁、内存占用量较大的时候,加快内存回收频率,保证内存的正常使用。
实施例七
本申请实施例涉及一种终端800及内存回收方法,该终端800可以为手机、平板电脑、个人数字助理(PersonalDigitalAssistant,PDA)、销售终端(PointofSales,POS)、或车载电脑等。
图8示出的是本申请实施例终端800的结构示意图。
参考图8,本申请实施例的一种终端800,包括:处理器810、存储器820、输入单元830、电源850、射频(RadioFrequency,RF)电路860、音频电路870、无线保真(WiFi)模块880。
其中,存储器820包括内存821和外部存储器822,内存821用于暂时存放处理器810中的运算数据,以及与硬盘等外部存储器822交换的数据,处理器810通过内存821与外部存储器822进行数据交换。内存821可以为非易失存储器(Non-VolatileRandomAccessMemory,NVRAM)、动态随机存储器(DynamicRandomAccessMemory,DRAM)、静态随机存储器(StaticRAM,SRAM)、Flash闪存等其中之一;外部存储器822可以为硬盘、光盘、USB盘、软盘或磁带机等。
处理器810在用户态执行存储器820中的指令:监控终端内安装的应用被用户操作使用的信息及内存占用信息;在根据终端内安装的应用被用户操作使用的信息及内存占用信息中的至少一种,确定当前满足内存回收条件时,根据终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从终端当前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。内存回收可以是由设置的内存回收时间间隔所触发的,具体地,处理器810可以分别确定在预设的至少一个时间段中的每个时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息;针对所述至少一个时间段中的每个时间段,分别根据在该时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定在该时间段内的内存回收时间间隔。可选地,还可以在确定系统内空闲内存小于第一设定阈值时,触发内存回收。还可以在监测到有应用被启动或切换到前台界面时,根据该应用的内存占用信息,以及系统内空闲内存大小,判断是否需要进行内存回收;若需要进行内存回收,则触发内存回收。还可以在当前在后台运行的应用的个数大于设置的允许后台运行应用的个数时,触发内存回收条件。进一步地,这里可以每隔一段时间根据当前空闲内存大小来设置允许后台运行应用的个数。由于后台运行的应用通常不是用户正在操作使用的应用,限制这部分应用的个数,可以避免对内存的过多无效占用。
可选地,基于上述触发条件,处理器810执行内存回收的过程可以为:根据预先保存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的、用户没有在操作使用的应用,确定当前时间是否位于选择的应用的高概率使用时间段,该应用的高概率使用时间段为基于该应用被用户操作使用的信息确定的;若不是,则确定选择的所述应用为被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收;重复上述步骤,直到满足内存回收的终止条件。进一步地,内存回收的终止条件可以包括如下条件中的一种或多种:系统内空闲内存大小大于第二设定阈值;当前启动的应用所需的内存小于系统空闲内存;切换到前台界面的应用所需的内存小于系统空闲内存;后台运行应用的个数小于或等于设置的允许后台运行应用的个数。进一步地,可以按照终端内安装各个应用的使用频率,对各个应用进行分组,其中,同组内的应用具有相同的使用频率范围;根据每个分组对应的使用频率范围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用具有相同的优先级顺序。
除此之外,处理器810还可以在确定当前满足内存回收条件时,通过调用内核态提供的内存回收接口执行内存回收。
输入单元830可用于接收输入的数字或字符信息,以及产生与终端800的用户设置以及功能控制有关的信号输入。具体地,本申请实施例中,输入单元830可以包括触控面板831。触控面板831,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板831上或在触控面板831的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板831可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给该处理器810,并能接收处理器810发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板831。除了触控面板831,输入单元830还可以包括其他输入设备832,其他输入设备832可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
该终端800还可以包括显示单元840,该显示单元840可用于显示由用户输入的信息或提供给用户的信息以及终端800的各种菜单界面。该显示单元840可包括显示面板841,可选的,可以采用LCD(LiquidCrystalDisplay,液晶显示器)或OLED(OrganicLight-EmittingDiode,有机发光二极管)等形式来配置显示面板841。
本申请实施例中,触控面板831覆盖显示面板841,形成触摸显示屏,当该触摸显示屏检测到在其上或附近的触摸操作后,传送给处理器810以确定触摸事件的类型,随后处理器810根据触摸事件的类型在触摸显示屏上提供相应的视觉输出。
本申请实施例中,触摸显示屏包括应用程序界面显示区及常用控件显示区。该应用程序界面显示区及该常用控件显示区的排列方式并不限定,可以为上下排列、左右排列等可以区分两个显示区的排列方式。该应用程序界面显示区可以用于显示应用程序的界面。每一个界面可以包含至少一个应用程序的图标和/或widget桌面控件等界面元素。该应用程序界面显示区也可以为不包含任何内容的空界面。该常用控件显示区用于显示使用率较高的控件,例如,设置按钮、界面编号、滚动条、电话本图标等应用程序图标等。
该处理器810是终端800的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在该内存821内的软件程序和/或模块,以及调用存储在该外部存储器822内的数据,执行终端800的各种功能和处理数据,从而对终端800进行整体监控。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (20)
1.一种内存回收方法,其特征在于,在用户态执行以下步骤:
监控终端内安装的应用被用户操作使用的信息及内存占用信息;
若根据所述终端内安装的应用被用户操作使用的信息及内存占用信息中的至少一种,确定当前满足内存回收条件,则
根据所述终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从所述终端当前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。
2.如权利要求1所述的方法,其特征在于,根据所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定当前满足内存回收条件,包括:
根据所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔;
在当前时间到达所述内存回收时间间隔所指示的内存回收时间时,确定当前满足内存回收条件。
3.如权利要求2所述的方法,其特征在于,所述根据所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔,包括:
分别确定在预设的至少一个时间段中的每个时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息;
针对所述至少一个时间段中的每个时间段,分别根据在该时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定在该时间段内的内存回收时间间隔。
4.如权利要求1所述的方法,其特征在于,所述根据所述终端内安装的应用的内存占用信息,确定当前满足内存回收条件,包括:
若确定系统内空闲内存小于第一设定阈值,则确定当前满足内存回收条件。
5.如权利要求1所述的方法,其特征在于,所述根据所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定当前满足内存回收条件,包括:
若监测到有应用被启动或切换到前台界面,则根据该应用的内存占用信息,以及系统内空闲内存大小,判断是否需要进行内存回收;
若需要进行内存回收,则确定当前满足内存回收条件。
6.如权利要求1所述的方法,其特征在于,所述根据所述终端内安装的应用被用户操作使用的信息,确定当前满足内存回收条件,包括:
若当前在后台运行的应用的个数大于设置的允许后台运行应用的个数,则确定当前满足内存回收条件。
7.如权利要求2~6任一所述的方法,其特征在于,所述确定将被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收,包括:
根据预先保存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的、用户没有在操作使用的应用,确定当前时间是否位于选择的应用的高概率使用时间段,该应用的高概率使用时间段为基于该应用被用户操作使用的信息确定的;若不是,则确定选择的所述应用为被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收;
重复上述步骤,直到满足内存回收的终止条件。
8.如权利要求7所述的方法,其特征在于,所述内存回收的终止条件包括以下条件中的一种或多种:
系统内空闲内存大小大于第二设定阈值;
当前启动的应用所需的内存小于系统空闲内存;
切换到前台界面的应用所需的内存小于系统空闲内存;
后台运行应用的个数小于或等于设置的允许后台运行应用的个数。
9.如权利要求7或8所述的方法,其特征在于,根据以下步骤设置被回收内存的应用的优先级顺序:
按照终端内安装各个应用的使用频率,对各个应用进行分组,其中,同组内的应用具有相同的使用频率范围;
根据每个分组对应的使用频率范围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用具有相同的优先级顺序。
10.如权利要求1所述的方法,其特征在于,所述根据所述终端内安装的应用被用户操作使用的信息,确定当前满足内存回收条件,通过调用内核态提供的内存回收接口执行内存回收,包括:
若监测到终端内存在应用在后台停留的时间长度超过设定时长,则确定当前满足内存回收条件,通过调用内核态提供的内存回收接口对在后台停留的时间长度超过设定时长的应用的内存进行回收。
11.一种内存回收装置,其特征在于,该装置包括:
确定模块,用于在用户态监控终端内安装的应用被用户操作使用的信息及内存占用信息;
内存回收模块,用于若根据所述终端内安装的应用被用户操作使用的信息及内存占用信息中的至少一种,确定当前满足内存回收条件,则根据所述终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从所述终端当前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执行内存回收。
12.如权利要求11所述的装置,其特征在于,所述内存回收模块具体用于:
根据所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定内存回收时间间隔;在当前时间到达所述内存回收时间间隔所指示的内存回收时间时,确定当前满足内存回收条件。
13.如权利要求12所述的装置,其特征在于,所述内存回收模块具体用于根据以下步骤确定内存回收时间间隔:
分别确定在预设的至少一个时间段中的每个时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息;针对所述至少一个时间段中的每个时间段,分别根据在该时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息,确定在该时间段内的内存回收时间间隔。
14.如权利要求11所述的装置,其特征在于,所述内存回收模块具体用于:
若确定系统内空闲内存小于第一设定阈值,则确定当前满足内存回收条件。
15.如权利要求11所述的装置,其特征在于,所述内存回收模块具体用于:
若监测到有应用被启动或切换到前台界面,则根据该应用的内存占用信息,以及系统内空闲内存大小,判断是否需要进行内存回收;若需要进行内存回收,则确定当前满足内存回收条件。
16.如权利要求11所述的装置,其特征在于,所述内存回收模块具体用于:
若当前在后台运行的应用的个数大于设置的允许后台运行应用的个数,则确定当前满足内存回收条件。
17.如权利要求12~16任一所述的装置,其特征在于,所述内存回收模块具体用于根据以下步骤进行内存回收:
根据预先保存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的、用户没有在操作使用的应用,确定当前时间是否位于选择的应用的高概率使用时间段,该应用的高概率使用时间段为基于该应用被用户操作使用的信息确定的;若不是,则确定选择的所述应用为被回收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收;重复上述步骤,直到满足内存回收的终止条件。
18.如权利要求17所述的装置,其特征在于,所述内存回收的终止条件包括以下条件中的一种或多种:
系统内空闲内存大小大于第二设定阈值;
当前启动的应用所需的内存小于系统空闲内存;
切换到前台界面的应用所需的内存小于系统空闲内存;
后台运行应用的个数小于或等于设置的允许后台运行应用的个数。
19.如权利要求17或18所述的装置,其特征在于,所述内存回收模块具体用于根据以下步骤设置被回收内存的应用的优先级顺序:
按照终端内安装各个应用的使用频率,对各个应用进行分组,其中,同组内的应用具有相同的使用频率范围;
根据每个分组对应的使用频率范围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用具有相同的优先级顺序。
20.如权利要求11所述的装置,其特征在于,所述内存回收模块具体用于:
若监测到终端内存在应用在后台停留的时间长度超过设定时长,则确定当前满足内存回收条件,通过调用内核态提供的内存回收接口对在后台停留的时间长度超过设定时长的应用的内存进行回收。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032537.7A CN105701025B (zh) | 2015-12-31 | 2015-12-31 | 一种内存回收方法及装置 |
BR112018013524-0A BR112018013524B1 (pt) | 2015-12-31 | 2016-12-22 | Método de recuperação de memória, aparelho, sistema de computador, dispositivo de armazenamento e meio de armazenamento legível por computador |
PCT/CN2016/111557 WO2017114288A1 (zh) | 2015-12-31 | 2016-12-22 | 一种内存回收方法及装置 |
KR1020187020861A KR20180097674A (ko) | 2015-12-31 | 2016-12-22 | 메모리 리클레임 방법 및 장치 |
KR1020207027212A KR102206364B1 (ko) | 2015-12-31 | 2016-12-22 | 메모리 리클레임 방법 및 장치 |
EP16881077.8A EP3388946B1 (en) | 2015-12-31 | 2016-12-22 | Memory collection method and device |
US16/023,126 US11023372B2 (en) | 2015-12-31 | 2018-06-29 | Application memory reclaim method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032537.7A CN105701025B (zh) | 2015-12-31 | 2015-12-31 | 一种内存回收方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105701025A true CN105701025A (zh) | 2016-06-22 |
CN105701025B CN105701025B (zh) | 2019-07-23 |
Family
ID=56226841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511032537.7A Active CN105701025B (zh) | 2015-12-31 | 2015-12-31 | 一种内存回收方法及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11023372B2 (zh) |
EP (1) | EP3388946B1 (zh) |
KR (2) | KR20180097674A (zh) |
CN (1) | CN105701025B (zh) |
WO (1) | WO2017114288A1 (zh) |
Cited By (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201717A (zh) * | 2016-07-01 | 2016-12-07 | 珠海市魅族科技有限公司 | 一种管理系统内存的方法及终端 |
CN106502740A (zh) * | 2016-10-31 | 2017-03-15 | 北京小米移动软件有限公司 | 应用安装方法和装置 |
CN106803860A (zh) * | 2017-01-23 | 2017-06-06 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN106843450A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN106844032A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
WO2017114288A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 一种内存回收方法及装置 |
CN106951327A (zh) * | 2017-03-23 | 2017-07-14 | 维沃移动通信有限公司 | 一种应用程序对系统影响的检测方法及移动终端 |
CN107168791A (zh) * | 2017-04-13 | 2017-09-15 | 北京安云世纪科技有限公司 | 亮屏状态下的终端内存优化方法、装置及移动终端 |
CN107249074A (zh) * | 2017-05-16 | 2017-10-13 | 努比亚技术有限公司 | 应用程序快速启动方法、移动终端及计算机可读存储介质 |
CN107395744A (zh) * | 2017-08-18 | 2017-11-24 | 广东欧珀移动通信有限公司 | 数据同步方法、移动终端以及存储介质 |
CN107704876A (zh) * | 2017-09-30 | 2018-02-16 | 广东欧珀移动通信有限公司 | 应用控制方法、装置、存储介质以及电子设备 |
CN107807857A (zh) * | 2017-11-29 | 2018-03-16 | 努比亚技术有限公司 | 清理运行内存的方法、设备及计算机可存储介质 |
CN107844342A (zh) * | 2017-11-21 | 2018-03-27 | 广东欧珀移动通信有限公司 | 应用程序保活的管控方法、装置及存储介质和移动终端 |
WO2018059079A1 (zh) * | 2016-09-28 | 2018-04-05 | 华为技术有限公司 | 一种内存管理方法和装置 |
WO2018059076A1 (zh) * | 2016-09-27 | 2018-04-05 | 华为技术有限公司 | 一种内存回收方法及装置 |
WO2018059027A1 (zh) * | 2016-09-29 | 2018-04-05 | 华为技术有限公司 | 一种内存回收方法及终端 |
CN108052388A (zh) * | 2017-11-24 | 2018-05-18 | 武汉斗鱼网络科技有限公司 | 一种Android中内存回收方法及装置 |
CN108228343A (zh) * | 2017-08-21 | 2018-06-29 | 珠海市魅族科技有限公司 | 内存回收方法及装置、计算机装置及计算机可读存储介质 |
CN108228341A (zh) * | 2017-08-07 | 2018-06-29 | 珠海市魅族科技有限公司 | 内存回收方法及装置、终端设备及计算机可读存储介质 |
CN108279975A (zh) * | 2017-12-11 | 2018-07-13 | 努比亚技术有限公司 | 一种内存控制方法、移动终端、数据交互方法及服务器 |
CN108563506A (zh) * | 2018-04-11 | 2018-09-21 | 青岛海信移动通信技术股份有限公司 | 移动终端的内存回收方法及装置 |
CN108600840A (zh) * | 2018-03-29 | 2018-09-28 | 深圳市九洲电器有限公司 | 机顶盒功耗控制方法及系统 |
CN108932163A (zh) * | 2018-06-15 | 2018-12-04 | 奇酷互联网络科技(深圳)有限公司 | 内存管理方法、装置、可读存储介质及终端 |
CN109271247A (zh) * | 2017-07-12 | 2019-01-25 | 珠海市魅族科技有限公司 | 内存优化方法、装置、计算机装置以及存储介质 |
CN109600409A (zh) * | 2017-09-30 | 2019-04-09 | 华为终端(东莞)有限公司 | 应用的资源管理方法及终端 |
CN109669733A (zh) * | 2017-10-12 | 2019-04-23 | 腾讯科技(深圳)有限公司 | 一种终端设备内存管理的方法及装置 |
CN109857556A (zh) * | 2019-01-15 | 2019-06-07 | Oppo广东移动通信有限公司 | 内存回收方法及装置、存储介质和电子设备 |
CN109992402A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
CN110018901A (zh) * | 2018-01-10 | 2019-07-16 | 广东欧珀移动通信有限公司 | 内存回收方法、装置、计算机设备和计算机可读存储介质 |
CN110018899A (zh) * | 2018-01-10 | 2019-07-16 | 华为技术有限公司 | 回收内存的方法及装置 |
CN110032321A (zh) * | 2018-01-12 | 2019-07-19 | 广东欧珀移动通信有限公司 | 应用程序处理方法和装置、电子设备、计算机可读存储介质 |
CN110083450A (zh) * | 2019-04-09 | 2019-08-02 | Oppo广东移动通信有限公司 | 内存回收方法、装置、电子设备及存储介质 |
CN110096357A (zh) * | 2019-03-29 | 2019-08-06 | 北京奇安信科技有限公司 | 一种分布式系统的内存资源清理方法及装置 |
CN110377527A (zh) * | 2018-04-13 | 2019-10-25 | 华为技术有限公司 | 一种内存管理的方法以及相关设备 |
CN110727607A (zh) * | 2019-09-27 | 2020-01-24 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置以及电子设备 |
CN110795239A (zh) * | 2019-10-15 | 2020-02-14 | 浙江口碑网络技术有限公司 | 应用内存泄露的检测方法及装置 |
CN111045779A (zh) * | 2019-11-01 | 2020-04-21 | 福建天泉教育科技有限公司 | 系统内存回收配置方法、存储介质 |
CN111078406A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
CN111262737A (zh) * | 2020-01-16 | 2020-06-09 | Tcl移动通信科技(宁波)有限公司 | 一种端口配置管理方法、装置、存储介质及终端 |
CN111679914A (zh) * | 2020-06-12 | 2020-09-18 | 北京字节跳动网络技术有限公司 | 一种内存管理方法、系统、计算机设备及存储介质 |
CN111756922A (zh) * | 2020-06-15 | 2020-10-09 | 北京智明星通科技股份有限公司 | 一种手机游戏的运行方法、系统及游戏终端 |
CN111782294A (zh) * | 2020-06-28 | 2020-10-16 | 珠海豹趣科技有限公司 | 一种应用程序的运行方法、装置、电子设备及存储介质 |
WO2021036993A1 (zh) * | 2019-08-30 | 2021-03-04 | 华为技术有限公司 | 内存回收方法及装置 |
CN112463374A (zh) * | 2020-11-26 | 2021-03-09 | 中国第一汽车股份有限公司 | 一种内存管理方法、装置、设备及存储介质 |
CN112817759A (zh) * | 2021-01-26 | 2021-05-18 | 广州欢网科技有限责任公司 | Tv视频应用内存占用优化方法、装置和电视终端 |
US11132219B2 (en) | 2016-08-17 | 2021-09-28 | Huawei Technologies Co., Ltd. | Starting method for applications which are closed automatically based on the insufficient memory of the system |
CN113886060A (zh) * | 2021-05-28 | 2022-01-04 | 荣耀终端有限公司 | 压缩内存的方法和装置 |
CN113900819A (zh) * | 2021-10-25 | 2022-01-07 | 联想(北京)有限公司 | 控制方法、装置及电子设备 |
CN117130947A (zh) * | 2023-01-31 | 2023-11-28 | 荣耀终端有限公司 | 一种内存管理方法及电子设备 |
US12086069B2 (en) | 2020-04-30 | 2024-09-10 | Huawei Technologies Co., Ltd. | Memory management method to determine a frequently accessed page and associated terminal device |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992393A (zh) | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 应用处理方法和装置、电子设备、计算机可读存储介质 |
CN110018900B (zh) * | 2018-01-10 | 2023-01-24 | Oppo广东移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
CN110018902B (zh) * | 2018-01-10 | 2023-01-31 | Oppo广东移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
KR102700419B1 (ko) * | 2018-09-04 | 2024-08-30 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
US11327809B2 (en) | 2019-06-19 | 2022-05-10 | International Business Machines Corporation | Virtual machine memory removal increment selection |
CN112328316B (zh) * | 2019-08-02 | 2023-01-24 | Tcl科技集团股份有限公司 | 一种app优化方法、移动终端及存储介质 |
CN110673955B (zh) * | 2019-09-20 | 2022-07-12 | 北京字节跳动网络技术有限公司 | 优化内存的方法、装置、系统、终端和存储介质 |
CN110727606A (zh) * | 2019-09-27 | 2020-01-24 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置以及电子设备 |
CN111258921B (zh) * | 2020-01-14 | 2024-01-26 | Oppo广东移动通信有限公司 | 垃圾内存回收方法及装置、电子设备、存储介质 |
US11314662B2 (en) * | 2020-03-05 | 2022-04-26 | Fortinet, Inc. | Providing a secure communication channel between kernel and user mode components |
KR20220038987A (ko) * | 2020-09-21 | 2022-03-29 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
CN114443268A (zh) * | 2020-10-31 | 2022-05-06 | 华为终端有限公司 | 内存管理方法、装置、电子设备以及计算机可读存储介质 |
US11442832B2 (en) * | 2020-11-24 | 2022-09-13 | Hewlett Packard Enterprise Development Lp | Managing synchronized reboot of a system |
WO2023048454A1 (en) * | 2021-09-21 | 2023-03-30 | Samsung Electronics Co., Ltd. | Method and electronic device for managing memory |
CN117991996B (zh) * | 2024-04-03 | 2024-05-31 | 深圳市铨兴科技有限公司 | 一种数据动态存储方法、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770125A (zh) * | 2004-11-04 | 2006-05-10 | 华为技术有限公司 | 一种分配内存的方法 |
US20120137101A1 (en) * | 2010-11-30 | 2012-05-31 | International Business Machines Corporation | Optimizing memory management of an application running on a virtual machine |
CN103246568A (zh) * | 2013-04-16 | 2013-08-14 | 深圳桑菲消费通信有限公司 | 一种通过手机设置应用优先级的方法和装置 |
CN103324500A (zh) * | 2013-05-06 | 2013-09-25 | 广州市动景计算机科技有限公司 | 一种回收内存的方法及装置 |
CN103544063A (zh) * | 2013-09-30 | 2014-01-29 | 三星电子(中国)研发中心 | 应用于安卓平台的进程清除方法和装置 |
CN104298612A (zh) * | 2014-09-30 | 2015-01-21 | 北京金山安全软件有限公司 | 移动终端中清理内存的方法、装置和移动终端 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7412694B2 (en) * | 2003-09-18 | 2008-08-12 | International Business Machines Corporation | Detecting program phases with periodic call-stack sampling during garbage collection |
US20060074872A1 (en) * | 2004-09-30 | 2006-04-06 | International Business Machines Corporation | Adaptive database buffer memory management using dynamic SQL statement cache statistics |
CN101833512A (zh) | 2010-04-22 | 2010-09-15 | 中兴通讯股份有限公司 | 一种内存回收方法及其装置 |
CN102799471B (zh) * | 2012-05-25 | 2014-11-05 | 上海斐讯数据通信技术有限公司 | 操作系统的进程回收方法及系统 |
CN104111873B (zh) * | 2013-04-22 | 2019-02-26 | 深圳富泰宏精密工业有限公司 | 内存释放方法及系统 |
US20150095603A1 (en) | 2013-09-30 | 2015-04-02 | Samsung Electronics Co., Ltd. | Method and device for clearing process in electronic device |
CN104050035B (zh) | 2014-05-14 | 2018-05-25 | 小米科技有限责任公司 | 应用程序的处理方法及装置 |
US9690685B2 (en) * | 2014-05-30 | 2017-06-27 | Apple Inc. | Performance management based on resource consumption |
US10642663B2 (en) * | 2014-09-10 | 2020-05-05 | Oracle International Corporation | Coordinated garbage collection in distributed systems |
US9940040B2 (en) * | 2015-08-26 | 2018-04-10 | Toshiba Memory Corporation | Systems, solid-state mass storage devices, and methods for host-assisted garbage collection |
CN105701025B (zh) * | 2015-12-31 | 2019-07-23 | 华为技术有限公司 | 一种内存回收方法及装置 |
-
2015
- 2015-12-31 CN CN201511032537.7A patent/CN105701025B/zh active Active
-
2016
- 2016-12-22 WO PCT/CN2016/111557 patent/WO2017114288A1/zh active Application Filing
- 2016-12-22 KR KR1020187020861A patent/KR20180097674A/ko active Application Filing
- 2016-12-22 KR KR1020207027212A patent/KR102206364B1/ko active IP Right Grant
- 2016-12-22 EP EP16881077.8A patent/EP3388946B1/en active Active
-
2018
- 2018-06-29 US US16/023,126 patent/US11023372B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770125A (zh) * | 2004-11-04 | 2006-05-10 | 华为技术有限公司 | 一种分配内存的方法 |
US20120137101A1 (en) * | 2010-11-30 | 2012-05-31 | International Business Machines Corporation | Optimizing memory management of an application running on a virtual machine |
CN103246568A (zh) * | 2013-04-16 | 2013-08-14 | 深圳桑菲消费通信有限公司 | 一种通过手机设置应用优先级的方法和装置 |
CN103324500A (zh) * | 2013-05-06 | 2013-09-25 | 广州市动景计算机科技有限公司 | 一种回收内存的方法及装置 |
CN103544063A (zh) * | 2013-09-30 | 2014-01-29 | 三星电子(中国)研发中心 | 应用于安卓平台的进程清除方法和装置 |
CN104298612A (zh) * | 2014-09-30 | 2015-01-21 | 北京金山安全软件有限公司 | 移动终端中清理内存的方法、装置和移动终端 |
Cited By (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017114288A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 一种内存回收方法及装置 |
US11023372B2 (en) | 2015-12-31 | 2021-06-01 | Huawei Technologies Co., Ltd. | Application memory reclaim method and apparatus |
CN106201717A (zh) * | 2016-07-01 | 2016-12-07 | 珠海市魅族科技有限公司 | 一种管理系统内存的方法及终端 |
US11132219B2 (en) | 2016-08-17 | 2021-09-28 | Huawei Technologies Co., Ltd. | Starting method for applications which are closed automatically based on the insufficient memory of the system |
US11099900B2 (en) | 2016-09-27 | 2021-08-24 | Huawei Technologies Co., Ltd. | Memory reclamation method and apparatus |
WO2018059076A1 (zh) * | 2016-09-27 | 2018-04-05 | 华为技术有限公司 | 一种内存回收方法及装置 |
US11531625B2 (en) | 2016-09-28 | 2022-12-20 | Huawei Technologies Co., Ltd. | Memory management method and apparatus |
US10990540B2 (en) | 2016-09-28 | 2021-04-27 | Huawei Technologies Co., Ltd. | Memory management method and apparatus |
CN107885666A (zh) * | 2016-09-28 | 2018-04-06 | 华为技术有限公司 | 一种内存管理方法和装置 |
WO2018059079A1 (zh) * | 2016-09-28 | 2018-04-05 | 华为技术有限公司 | 一种内存管理方法和装置 |
WO2018059027A1 (zh) * | 2016-09-29 | 2018-04-05 | 华为技术有限公司 | 一种内存回收方法及终端 |
US11822805B2 (en) | 2016-09-29 | 2023-11-21 | Huawei Technologies Co., Ltd. | Method and terminal for reclaiming memory after freezing program |
CN106502740A (zh) * | 2016-10-31 | 2017-03-15 | 北京小米移动软件有限公司 | 应用安装方法和装置 |
CN106502740B (zh) * | 2016-10-31 | 2019-08-06 | 北京小米移动软件有限公司 | 应用安装方法和装置 |
CN106843450A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN106803860B (zh) * | 2017-01-23 | 2020-12-29 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN106844032A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN106803860A (zh) * | 2017-01-23 | 2017-06-06 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN106951327A (zh) * | 2017-03-23 | 2017-07-14 | 维沃移动通信有限公司 | 一种应用程序对系统影响的检测方法及移动终端 |
CN107168791A (zh) * | 2017-04-13 | 2017-09-15 | 北京安云世纪科技有限公司 | 亮屏状态下的终端内存优化方法、装置及移动终端 |
CN107249074A (zh) * | 2017-05-16 | 2017-10-13 | 努比亚技术有限公司 | 应用程序快速启动方法、移动终端及计算机可读存储介质 |
CN109271247A (zh) * | 2017-07-12 | 2019-01-25 | 珠海市魅族科技有限公司 | 内存优化方法、装置、计算机装置以及存储介质 |
CN108228341A (zh) * | 2017-08-07 | 2018-06-29 | 珠海市魅族科技有限公司 | 内存回收方法及装置、终端设备及计算机可读存储介质 |
CN108228341B (zh) * | 2017-08-07 | 2021-03-02 | 珠海市魅族科技有限公司 | 内存回收方法及装置、终端设备及计算机可读存储介质 |
CN107395744A (zh) * | 2017-08-18 | 2017-11-24 | 广东欧珀移动通信有限公司 | 数据同步方法、移动终端以及存储介质 |
CN108228343A (zh) * | 2017-08-21 | 2018-06-29 | 珠海市魅族科技有限公司 | 内存回收方法及装置、计算机装置及计算机可读存储介质 |
CN108228343B (zh) * | 2017-08-21 | 2020-11-17 | 珠海市魅族科技有限公司 | 内存回收方法及装置、计算机装置及计算机可读存储介质 |
CN109600409B (zh) * | 2017-09-30 | 2022-08-19 | 华为终端有限公司 | 应用的资源管理方法及终端 |
CN109600409A (zh) * | 2017-09-30 | 2019-04-09 | 华为终端(东莞)有限公司 | 应用的资源管理方法及终端 |
CN107704876A (zh) * | 2017-09-30 | 2018-02-16 | 广东欧珀移动通信有限公司 | 应用控制方法、装置、存储介质以及电子设备 |
CN109669733A (zh) * | 2017-10-12 | 2019-04-23 | 腾讯科技(深圳)有限公司 | 一种终端设备内存管理的方法及装置 |
CN107844342B (zh) * | 2017-11-21 | 2021-07-09 | Oppo广东移动通信有限公司 | 应用程序保活的管控方法、装置及存储介质和移动终端 |
CN107844342A (zh) * | 2017-11-21 | 2018-03-27 | 广东欧珀移动通信有限公司 | 应用程序保活的管控方法、装置及存储介质和移动终端 |
CN108052388A (zh) * | 2017-11-24 | 2018-05-18 | 武汉斗鱼网络科技有限公司 | 一种Android中内存回收方法及装置 |
CN107807857B (zh) * | 2017-11-29 | 2021-05-21 | 努比亚技术有限公司 | 清理运行内存的方法、设备及计算机可存储介质 |
CN107807857A (zh) * | 2017-11-29 | 2018-03-16 | 努比亚技术有限公司 | 清理运行内存的方法、设备及计算机可存储介质 |
CN108279975B (zh) * | 2017-12-11 | 2022-01-14 | 努比亚技术有限公司 | 一种内存控制方法、移动终端、数据交互方法及服务器 |
CN108279975A (zh) * | 2017-12-11 | 2018-07-13 | 努比亚技术有限公司 | 一种内存控制方法、移动终端、数据交互方法及服务器 |
CN109992402B (zh) * | 2017-12-29 | 2021-07-09 | Oppo广东移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
CN109992402A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
CN110018899A (zh) * | 2018-01-10 | 2019-07-16 | 华为技术有限公司 | 回收内存的方法及装置 |
CN110018901B (zh) * | 2018-01-10 | 2021-08-03 | Oppo广东移动通信有限公司 | 内存回收方法、装置、计算机设备和计算机可读存储介质 |
WO2019136963A1 (zh) * | 2018-01-10 | 2019-07-18 | 华为技术有限公司 | 回收内存的方法及装置 |
CN110018901A (zh) * | 2018-01-10 | 2019-07-16 | 广东欧珀移动通信有限公司 | 内存回收方法、装置、计算机设备和计算机可读存储介质 |
CN110018899B (zh) * | 2018-01-10 | 2021-09-07 | 华为技术有限公司 | 回收内存的方法及装置 |
CN110032321B (zh) * | 2018-01-12 | 2024-02-20 | Oppo广东移动通信有限公司 | 应用程序处理方法和装置、电子设备、计算机可读存储介质 |
CN110032321A (zh) * | 2018-01-12 | 2019-07-19 | 广东欧珀移动通信有限公司 | 应用程序处理方法和装置、电子设备、计算机可读存储介质 |
CN108600840B (zh) * | 2018-03-29 | 2020-07-10 | 深圳市九洲电器有限公司 | 机顶盒功耗控制方法及系统 |
CN108600840A (zh) * | 2018-03-29 | 2018-09-28 | 深圳市九洲电器有限公司 | 机顶盒功耗控制方法及系统 |
CN108563506A (zh) * | 2018-04-11 | 2018-09-21 | 青岛海信移动通信技术股份有限公司 | 移动终端的内存回收方法及装置 |
CN110377527B (zh) * | 2018-04-13 | 2023-09-22 | 华为技术有限公司 | 一种内存管理的方法以及相关设备 |
CN110377527A (zh) * | 2018-04-13 | 2019-10-25 | 华为技术有限公司 | 一种内存管理的方法以及相关设备 |
CN108932163A (zh) * | 2018-06-15 | 2018-12-04 | 奇酷互联网络科技(深圳)有限公司 | 内存管理方法、装置、可读存储介质及终端 |
CN109857556B (zh) * | 2019-01-15 | 2021-01-08 | Oppo广东移动通信有限公司 | 内存回收方法及装置、存储介质和电子设备 |
CN109857556A (zh) * | 2019-01-15 | 2019-06-07 | Oppo广东移动通信有限公司 | 内存回收方法及装置、存储介质和电子设备 |
CN110096357A (zh) * | 2019-03-29 | 2019-08-06 | 北京奇安信科技有限公司 | 一种分布式系统的内存资源清理方法及装置 |
CN110083450A (zh) * | 2019-04-09 | 2019-08-02 | Oppo广东移动通信有限公司 | 内存回收方法、装置、电子设备及存储介质 |
WO2021036993A1 (zh) * | 2019-08-30 | 2021-03-04 | 华为技术有限公司 | 内存回收方法及装置 |
CN112445606A (zh) * | 2019-08-30 | 2021-03-05 | 华为技术有限公司 | 内存回收方法及装置 |
CN110727607B (zh) * | 2019-09-27 | 2022-08-12 | Oppo广东移动通信有限公司 | 内存回收方法、装置以及电子设备 |
CN110727607A (zh) * | 2019-09-27 | 2020-01-24 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置以及电子设备 |
CN110795239A (zh) * | 2019-10-15 | 2020-02-14 | 浙江口碑网络技术有限公司 | 应用内存泄露的检测方法及装置 |
CN111045779B (zh) * | 2019-11-01 | 2024-03-01 | 福建天泉教育科技有限公司 | 系统内存回收配置方法、存储介质 |
CN111045779A (zh) * | 2019-11-01 | 2020-04-21 | 福建天泉教育科技有限公司 | 系统内存回收配置方法、存储介质 |
CN111078406A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
CN111262737B (zh) * | 2020-01-16 | 2023-11-28 | 圆山电子科技(深圳)有限公司 | 一种端口配置管理方法、装置、存储介质及终端 |
CN111262737A (zh) * | 2020-01-16 | 2020-06-09 | Tcl移动通信科技(宁波)有限公司 | 一种端口配置管理方法、装置、存储介质及终端 |
US12086069B2 (en) | 2020-04-30 | 2024-09-10 | Huawei Technologies Co., Ltd. | Memory management method to determine a frequently accessed page and associated terminal device |
CN111679914A (zh) * | 2020-06-12 | 2020-09-18 | 北京字节跳动网络技术有限公司 | 一种内存管理方法、系统、计算机设备及存储介质 |
CN111756922A (zh) * | 2020-06-15 | 2020-10-09 | 北京智明星通科技股份有限公司 | 一种手机游戏的运行方法、系统及游戏终端 |
CN111782294A (zh) * | 2020-06-28 | 2020-10-16 | 珠海豹趣科技有限公司 | 一种应用程序的运行方法、装置、电子设备及存储介质 |
CN112463374A (zh) * | 2020-11-26 | 2021-03-09 | 中国第一汽车股份有限公司 | 一种内存管理方法、装置、设备及存储介质 |
CN112817759A (zh) * | 2021-01-26 | 2021-05-18 | 广州欢网科技有限责任公司 | Tv视频应用内存占用优化方法、装置和电视终端 |
CN113886060A (zh) * | 2021-05-28 | 2022-01-04 | 荣耀终端有限公司 | 压缩内存的方法和装置 |
CN113900819A (zh) * | 2021-10-25 | 2022-01-07 | 联想(北京)有限公司 | 控制方法、装置及电子设备 |
CN117130947A (zh) * | 2023-01-31 | 2023-11-28 | 荣耀终端有限公司 | 一种内存管理方法及电子设备 |
CN117130947B (zh) * | 2023-01-31 | 2024-07-12 | 荣耀终端有限公司 | 一种内存管理方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
KR20180097674A (ko) | 2018-08-31 |
CN105701025B (zh) | 2019-07-23 |
US11023372B2 (en) | 2021-06-01 |
KR102206364B1 (ko) | 2021-01-21 |
EP3388946B1 (en) | 2022-04-06 |
EP3388946A4 (en) | 2018-12-26 |
KR20200111295A (ko) | 2020-09-28 |
US20180307600A1 (en) | 2018-10-25 |
BR112018013524A2 (pt) | 2018-12-11 |
WO2017114288A1 (zh) | 2017-07-06 |
EP3388946A1 (en) | 2018-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105701025A (zh) | 一种内存回收方法及装置 | |
US11099900B2 (en) | Memory reclamation method and apparatus | |
CN109992523B (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
US10698837B2 (en) | Memory processing method and device and storage medium | |
EP3508974A1 (en) | Method and terminal for allocating system resource to application | |
CN110018900B (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
US11474831B2 (en) | Application startup control method and control device | |
CN110018902B (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
CN105468409A (zh) | 一种应用程序关闭方法、装置及电子设备 | |
CN101794567A (zh) | 图片加载的方法及终端 | |
US20130054929A1 (en) | Mobile terminal and operation method for the same based on memory state changes | |
WO2019076381A1 (zh) | 终端内存回收处理方法及装置 | |
CN105740078A (zh) | 一种内存管理方法、装置及终端 | |
CN102104666A (zh) | 应用跳转预测系统及方法 | |
CN102436457A (zh) | 一种分配浏览器进程的方法及其设备 | |
CN105824660A (zh) | 一种应用程序的更新方法及终端 | |
CN108038050B (zh) | 性能调整方法、装置、存储介质及电子设备 | |
CN110955614A (zh) | 文件缓存的回收方法、装置、存储介质及终端 | |
CN113721936A (zh) | 一种应用管理方法及智能终端、装置及存储介质 | |
CN113965915B (zh) | 数据处理方法和电子设备 | |
CN110188006B (zh) | 一种数据维护方法、装置及设备 | |
CN116483575A (zh) | 内存管理方法、装置、电子设备及可读存储介质 | |
CN114443510A (zh) | 一种内存回收方法及装置 | |
CN114064283A (zh) | 一种广播信息处理方法、装置、芯片和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |